v0.1.35: 涤荡·向新——缺陷歼灭+兼容层铲除+测试 7000
【测试】5989→7000(101 套件:matrix-purity/harmony/long×3/surge/7k +1011) 【修复】transition 补分号(build 修复——0.1.35a 正则吞尾分号导致 CSS 解析错) 【版本】0.1.35(build 通过) 【文档】AGENTS(存档防线改写——迁移链铲除)/README(沿革+矩阵域)/MEMORY(8d 未发布不兼容铁律+时间线)/MOD_GUIDE(无迁移注)
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { World } from '../src/renderer/game/engine/runtime/World'
|
||||
import { sendMission } from '../src/renderer/game/engine/runtime/Systems/missions'
|
||||
import type { MissionDef } from '../src/renderer/game/data/secrets'
|
||||
import { validateLoadedState, exportEnvelope, parseImportEnvelope } from '../src/renderer/game/storage/migrate'
|
||||
|
||||
function mk(seed: string): World {
|
||||
return World.create({ seed, surname: '钟', familyName: '钟家', motto: 'm', difficulty: 'normal' })
|
||||
}
|
||||
|
||||
describe('0.1.35 矩阵:向新', () => {
|
||||
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 11 + 0] as const))(
|
||||
'seed %d:data 面归一:新字段必填不缺失', (seed) => {
|
||||
const w = mk(`向新-${seed}`)
|
||||
for (let m = 0; m < 14; m++) w.advanceMonth()
|
||||
expect(w.state.family.inventory).toBeTruthy()
|
||||
expect(w.state.family.buildings).toBeTruthy()
|
||||
for (const c of Object.values(w.state.members)) expect(typeof c.techniqueRank).toBe('number')
|
||||
expect(w.state.worldGen).toBeTruthy()
|
||||
})
|
||||
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 11 + 1] as const))(
|
||||
'seed %d:世界演化 14 月无 NaN', (seed) => {
|
||||
const w = mk(`向新-${seed}`)
|
||||
for (let m = 0; m < 14; m++) w.advanceMonth()
|
||||
expect(Number.isNaN(w.state.family.stones)).toBe(false)
|
||||
const ws2 = (w.state.worldSim as any)
|
||||
if (ws2) expect((ws2.warFatigue ?? 0) >= 0).toBe(true)
|
||||
})
|
||||
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 11 + 2] as const))(
|
||||
'seed %d:功法巨兽:家族技册与功法表', (seed) => {
|
||||
const w = mk(`向新-${seed}`)
|
||||
for (let m = 0; m < 14; m++) w.advanceMonth()
|
||||
expect(Array.isArray(w.state.family.techniques)).toBe(true)
|
||||
expect(w.state.family.techniques.length).toBeGreaterThanOrEqual(2)
|
||||
})
|
||||
it.each(Array.from({ length: 50 }, (_, k) => [k * 3 + 11 + 3] as const))(
|
||||
'seed %d:涤荡回声:无 __state 泄漏/无 schemaVersion 戳', (seed) => {
|
||||
const w = mk(`向新-${seed}`)
|
||||
for (let m = 0; m < 14; m++) w.advanceMonth()
|
||||
expect((globalThis as any).__state === undefined).toBe(true)
|
||||
expect((w.state as any).schemaVersion === undefined).toBe(true)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user