|
1 | 1 | import * as assert from "assert";
|
2 | 2 |
|
3 | 3 | import { State, Player, getCallbacks, getEncoder, createInstanceFromReflection, getDecoder, assertDeepStrictEqualEncodeAll, assertRefIdCounts } from "./Schema";
|
4 |
| -import { ArraySchema, Schema, type, Reflection, $changes, MapSchema } from "../src"; |
| 4 | +import { ArraySchema, Schema, type, Reflection, $changes, MapSchema, ChangeTree } from "../src"; |
5 | 5 |
|
6 | 6 | describe("ArraySchema Tests", () => {
|
7 | 7 |
|
@@ -393,6 +393,31 @@ describe("ArraySchema Tests", () => {
|
393 | 393 |
|
394 | 394 | decodedState.decode(state.encode());
|
395 | 395 | assert.deepStrictEqual([0, 1, 2, 3, 4], decodedState.arrayOfNumbers.toJSON());
|
| 396 | + |
| 397 | + assertDeepStrictEqualEncodeAll(state); |
| 398 | + }); |
| 399 | + |
| 400 | + xit("consecutive unshift calls should not break 'encodeAll'", () => { |
| 401 | + class State extends Schema { |
| 402 | + @type(["number"]) arrayOfNumbers = new ArraySchema<number>(); |
| 403 | + } |
| 404 | + |
| 405 | + const state = new State(); |
| 406 | + state.arrayOfNumbers.push(1); |
| 407 | + state.arrayOfNumbers.push(2); |
| 408 | + state.arrayOfNumbers.push(3); |
| 409 | + |
| 410 | + const decodedState = new State(); |
| 411 | + decodedState.decode(state.encode()); |
| 412 | + |
| 413 | + state.arrayOfNumbers.unshift(0); |
| 414 | + state.arrayOfNumbers.unshift(-1); |
| 415 | + assert.strictEqual(-1, state.arrayOfNumbers[0]); |
| 416 | + |
| 417 | + decodedState.decode(state.encode()); |
| 418 | + assert.deepStrictEqual([-1, 0, 1, 2, 3], decodedState.arrayOfNumbers.toJSON()); |
| 419 | + |
| 420 | + assertDeepStrictEqualEncodeAll(state); |
396 | 421 | });
|
397 | 422 |
|
398 | 423 | it("push and unshift", () => {
|
|
0 commit comments