fix(parser): fix empty array and nested bracket parsing
Improve the `ValueParser` to correctly disambiguate between empty arrays `[]` and the start of nested structures. This ensures that the parser can distinguish between an array containing a single element that starts with a bracket and an actual empty array. Update tests to reflect that parsed tuples are returned as arrays rather than objects.
This commit is contained in:
@@ -183,16 +183,8 @@ describe("parseCsv - references in combinatory schemas", () => {
|
||||
|
||||
const cactusEnemies = result.data[0].enemies as unknown[];
|
||||
expect(cactusEnemies).toHaveLength(2);
|
||||
expect(cactusEnemies[0]).toEqual({
|
||||
name: "仙人掌怪",
|
||||
hp: 12,
|
||||
effects: [],
|
||||
});
|
||||
expect(cactusEnemies[1]).toEqual({
|
||||
name: "仙人掌怪",
|
||||
hp: 12,
|
||||
effects: [],
|
||||
});
|
||||
expect(cactusEnemies[0]).toEqual(["仙人掌怪", 12, []]);
|
||||
expect(cactusEnemies[1]).toEqual(["仙人掌怪", 12, []]);
|
||||
|
||||
// Second row: snake_pair
|
||||
expect(result.data[1]).toMatchObject({
|
||||
@@ -206,13 +198,13 @@ describe("parseCsv - references in combinatory schemas", () => {
|
||||
|
||||
const snakeEnemies = result.data[1].enemies as unknown[];
|
||||
expect(snakeEnemies).toHaveLength(1);
|
||||
expect(snakeEnemies[0]).toEqual({
|
||||
name: "蛇",
|
||||
hp: 10,
|
||||
effects: [
|
||||
{ effect: "poison", stacks: 2 },
|
||||
{ effect: "quick", stacks: 1 },
|
||||
expect(snakeEnemies[0]).toEqual([
|
||||
"蛇",
|
||||
10,
|
||||
[
|
||||
["poison", 2],
|
||||
["quick", 1],
|
||||
],
|
||||
});
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user