Enable Basic Kull preview with Tech Tokens
Verify and publish checkpoint container / container (push) Canceled after 0s
Verify and publish checkpoint container / container (push) Canceled after 0s
This commit is contained in:
1 parent
92d5c0ac2e
commit
16f10beecf
11 files changed
+375
-18
No files matched your search
@@ -1,6 +1,7 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { kullDefaultEligible, kullDefaultProfile, type KullDefaultProfile } from '../game/kull-default-profile';
|
||||
import { nativeFactionTechProfile } from '../game/faction-module-profile';
|
||||
|
||||
const lobby: KullDefaultProfile = {
|
||||
status: 'lobby', advanced: false, expansions: ['choam', 'ix'],
|
||||
@@ -65,6 +66,24 @@ void test('public eligibility does not change when the host chooses an opt-out',
|
||||
assert.equal(kullDefaultEligible({ ...lobby, lobbyOptions: selectedOn }), true);
|
||||
});
|
||||
|
||||
void test('Basic Tech Kull has a narrow three-to-six-seat CHOAM and classic roster', () => {
|
||||
const tech = { ...lobby, players: [{ faction: 'choam' }, { faction: 'atreides' }, { faction: 'guild' }], techTokens: {} };
|
||||
assert.equal(kullDefaultEligible(tech), true);
|
||||
assert.equal(nativeFactionTechProfile({ ...tech, kullPreview: true }), true);
|
||||
for (const variant of [
|
||||
{ players: tech.players.slice(0, 2) },
|
||||
{ players: [{ faction: 'choam' }, { faction: 'ixians' }, { faction: 'guild' }] },
|
||||
{ expansions: ['ix', 'choam', 'ecaz'] },
|
||||
{ lobbyOptions: { ecazTreachery: true } },
|
||||
{ lobbyModules: { ecazTreachery: true } },
|
||||
{ homeworlds: {} }, { nexusCards: {} }, { leaderSkills: {} }, { advanced: true },
|
||||
]) assert.equal(kullDefaultEligible({ ...tech, ...variant }), false);
|
||||
assert.equal(nativeFactionTechProfile({ ...tech, kullPreview: true, sandtrout: true }), false);
|
||||
assert.equal(nativeFactionTechProfile({ ...tech, kullPreview: true, ecazTreachery: true }), false);
|
||||
assert.equal(nativeFactionTechProfile({ ...tech, kullPreview: true, advanced: true }), false);
|
||||
assert.equal(nativeFactionTechProfile({ ...tech, kullPreview: true }, true), false);
|
||||
});
|
||||
|
||||
void test('profile reads only public faction and configuration data, never hidden hands or spice', () => {
|
||||
const player = { faction: 'choam', get hand() { throw Error('private hand read'); },
|
||||
get spice() { throw Error('private spice read'); } };
|
||||
|
||||
Reference in new issue
Block a user