aboutsummaryrefslogtreecommitdiff
path: root/internal/game/economy_seq_test.go
blob: 2c5bbdb57c5f636ebb03fb83be7029030284abfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package game

import "testing"

// TestStakeCoveredRespectsCreationOrder: an open payout created BEFORE a stake
// must not be treated as that stake's settlement, or RefundOutstanding would
// resolve the later stake without returning its money.
func TestStakeCoveredRespectsCreationOrder(t *testing.T) {
	j := newEconomyJournal(t.TempDir())
	stake := &economyRecord{ID: "stake", Player: "alice", Kind: "wager", Status: "open", Seq: 2}
	j.registerStake(stake)

	older := &economyRecord{ID: "older", Player: "alice", Kind: "payout", Status: "open", Seq: 1, Tracked: true}
	j.openPayoutRecs[stake.key()] = []*economyRecord{older}
	if j.stakeCovered(stake) {
		t.Fatal("a payout created before the stake must not cover it")
	}

	newer := &economyRecord{ID: "newer", Player: "alice", Kind: "payout", Status: "open", Seq: 3, Tracked: true}
	j.openPayoutRecs[stake.key()] = []*economyRecord{newer}
	if !j.stakeCovered(stake) {
		t.Fatal("a payout created after the stake should cover it")
	}
}