87 lines
2.2 KiB
JavaScript
87 lines
2.2 KiB
JavaScript
import { test, expect } from 'vitest';
|
|
|
|
import {
|
|
genNextBattle,
|
|
genChapter2Battle,
|
|
genChapter3Battle,
|
|
genChapter4Battle,
|
|
} from './genNextBattle.js';
|
|
|
|
test('generate for the first chapter', () => {
|
|
const next = genNextBattle();
|
|
expect(next).toHaveProperty('city');
|
|
expect(next).toHaveProperty('status', 'ongoing');
|
|
});
|
|
|
|
test('chapter 2, first battle', () => {
|
|
const result = genChapter2Battle([
|
|
{ character: 'one' },
|
|
{ character: 'two' },
|
|
]);
|
|
|
|
expect(result.additionalCharacters[0].selection).toEqual('one');
|
|
expect(result.additionalCharacters[0].choices).toEqual(['one', 'two']);
|
|
});
|
|
|
|
test('chapter 2, second battle', () => {
|
|
const result = genChapter2Battle([
|
|
{ character: 'one' },
|
|
{ character: 'two' },
|
|
{
|
|
character: 'three',
|
|
additionalCharacters: [{ selection: 'two' }],
|
|
},
|
|
]);
|
|
|
|
expect(result.additionalCharacters[0].selection).toEqual('one');
|
|
expect(result.additionalCharacters[0].choices).toEqual(['one']);
|
|
});
|
|
|
|
test('chapter 3, first battle', () => {
|
|
const result = genChapter3Battle([
|
|
{ character: 'one' },
|
|
{ character: 'two' },
|
|
{ character: 'three' },
|
|
{ character: 'four' },
|
|
]);
|
|
|
|
expect(result.additionalCharacters[0].selection).toEqual('one');
|
|
expect(result.additionalCharacters[1].selection).toEqual('three');
|
|
});
|
|
|
|
test('chapter 3, second battle', () => {
|
|
const result = genChapter3Battle([
|
|
{ character: 'one' },
|
|
{ character: 'two' },
|
|
{ character: 'three' },
|
|
{ character: 'four' },
|
|
{
|
|
character: 'five',
|
|
additionalCharacters: [
|
|
{ selection: 'one' },
|
|
{ selection: 'three' },
|
|
],
|
|
},
|
|
]);
|
|
|
|
expect(result.additionalCharacters[0].selection).toEqual('two');
|
|
expect(result.additionalCharacters[1].selection).toEqual('four');
|
|
});
|
|
|
|
test.only('chapter 4, first battle', () => {
|
|
const result = genChapter4Battle([
|
|
{ character: 'one', city: 'a' },
|
|
{ character: 'two', city: 'b', status: 'lost' },
|
|
{ character: 'three', city: 'c' },
|
|
{ character: 'four', city: 'd' },
|
|
{ character: 'five', city: 'e' },
|
|
{ character: 'six', city: 'f' },
|
|
]);
|
|
|
|
expect(result.additionalCharacters[0].selection).toEqual('one');
|
|
expect(result.additionalCharacters[1].selection).toEqual('two');
|
|
expect(result.additionalCharacters[2].selection).toEqual('three');
|
|
|
|
expect(result.city.choices).not.toContain('b');
|
|
});
|