From fc234d9a7ac81ad0dcd62badf18e89bce6bd84d3 Mon Sep 17 00:00:00 2001 From: Vaclav Vancura Date: Sun, 12 Apr 2026 15:25:39 +0200 Subject: [PATCH] chore: replace non-null assertions with optional chaining in tests Swap `!` non-null assertions for `?.` optional chaining in Renderer.test.ts and Rect2i.test.ts, and replace a `!` dereference in FrameCapture.test.ts with an explicit null-guard throw. Also bump the Biome schema reference from 2.4.8 to 2.4.10. Signed-off-by: Vaclav Vancura --- biome.json | 2 +- src/render/Renderer.test.ts | 8 ++++---- src/utils/FrameCapture.test.ts | 4 +++- src/utils/Rect2i.test.ts | 16 ++++++++-------- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/biome.json b/biome.json index f5df353..c0230b6 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json", + "$schema": "https://biomejs.dev/schemas/2.4.10/schema.json", "vcs": { "enabled": true, "clientKind": "git", diff --git a/src/render/Renderer.test.ts b/src/render/Renderer.test.ts index 68dedfb..d30d649 100644 --- a/src/render/Renderer.test.ts +++ b/src/render/Renderer.test.ts @@ -190,9 +190,9 @@ describe('palette enforcement', () => { expect(result).not.toBeNull(); expect(result).not.toBe(palette); - expect(result!.size).toBe(palette.size); - expect(result!.get(1)).toEqual(palette.get(1)); - expect(result!.get(8)).toEqual(palette.get(8)); + expect(result?.size).toBe(palette.size); + expect(result?.get(1)).toEqual(palette.get(1)); + expect(result?.get(8)).toEqual(palette.get(8)); }); it('getPalette returns null when no palette is set', () => { @@ -697,7 +697,7 @@ describe('palette dirty-flag auto-propagation', () => { palette.set(1, new Color32(99, 99, 99, 255)); // getPalette() returns a clone, so compare by value rather than reference. - expect(renderer.getPalette()!.get(1)).toEqual(new Color32(99, 99, 99, 255)); + expect(renderer.getPalette()?.get(1)).toEqual(new Color32(99, 99, 99, 255)); }); it('getPalette still returns a clone, not the internal reference', () => { diff --git a/src/utils/FrameCapture.test.ts b/src/utils/FrameCapture.test.ts index 2eb8398..722c366 100644 --- a/src/utils/FrameCapture.test.ts +++ b/src/utils/FrameCapture.test.ts @@ -311,7 +311,9 @@ describe('FrameCapture', () => { expect(capturedPixels).not.toBeNull(); // After swizzle, first pixel of each row should be RGBA = [30, 20, 10, 255]. - const pixels = capturedPixels!; + if (capturedPixels === null) throw new Error('capturedPixels should not be null'); + + const pixels = capturedPixels; for (let y = 0; y < 4; y++) { const offset = y * 4 * 4; // 4 pixels per row, 4 bytes per pixel (no padding in output) diff --git a/src/utils/Rect2i.test.ts b/src/utils/Rect2i.test.ts index 1186627..65abc4c 100644 --- a/src/utils/Rect2i.test.ts +++ b/src/utils/Rect2i.test.ts @@ -476,10 +476,10 @@ describe('Rect2i', () => { const result = a.intersection(b); expect(result).not.toBeNull(); - expect(result!.x).toBe(50); - expect(result!.y).toBe(50); - expect(result!.width).toBe(50); - expect(result!.height).toBe(50); + expect(result?.x).toBe(50); + expect(result?.y).toBe(50); + expect(result?.width).toBe(50); + expect(result?.height).toBe(50); }); it('should return null when rects do not overlap', () => { @@ -494,10 +494,10 @@ describe('Rect2i', () => { const result = outer.intersection(inner); expect(result).not.toBeNull(); - expect(result!.x).toBe(20); - expect(result!.y).toBe(30); - expect(result!.width).toBe(10); - expect(result!.height).toBe(15); + expect(result?.x).toBe(20); + expect(result?.y).toBe(30); + expect(result?.width).toBe(10); + expect(result?.height).toBe(15); }); }); -- 2.51.2