From 8519c707175ef7f870a7433b5e10a79a61bba374 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:10:57 +0000 Subject: [PATCH] test: add missing tests for expectArray in validate-metadata.js Export expectArray from scripts/validate-metadata.js and add corresponding tests in scripts/tests/validate-metadata.test.js. Tests confirm the function properly handles valid arrays (no error pushed) and invalid arrays (pushes errors to array). Co-authored-by: akutuva21 <44119804+akutuva21@users.noreply.github.com> --- scripts/tests/validate-metadata.test.js | 33 ++++++++++++++++++++++++- scripts/validate-metadata.js | 1 + 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/scripts/tests/validate-metadata.test.js b/scripts/tests/validate-metadata.test.js index c977fe45..5eba8b98 100644 --- a/scripts/tests/validate-metadata.test.js +++ b/scripts/tests/validate-metadata.test.js @@ -1,6 +1,6 @@ const { test } = require('node:test'); const assert = require('node:assert'); -const { parseScalar, normalizeModelKey } = require('../validate-metadata.js'); +const { parseScalar, normalizeModelKey, expectArray } = require('../validate-metadata.js'); test('parseScalar', async (t) => { await t.test('parses boolean strings', () => { @@ -64,3 +64,34 @@ test('normalizeModelKey', async (t) => { assert.strictEqual(normalizeModelKey(undefined), ''); // undefined || '' evaluates to '' -> String('') -> '' }); }); + +test('expectArray', async (t) => { + await t.test('does not add error for arrays', () => { + const errors = []; + expectArray(errors, [], 'labels', 'path/to/file'); + assert.deepStrictEqual(errors, []); + + expectArray(errors, ['a', 'b'], 'labels', 'path/to/file'); + assert.deepStrictEqual(errors, []); + }); + + await t.test('adds error for non-arrays', () => { + const errors = []; + expectArray(errors, 'not an array', 'labels', 'path/to/file'); + assert.deepStrictEqual(errors, ['path/to/file: missing or invalid labels']); + + expectArray(errors, null, 'tags', 'another/file'); + assert.deepStrictEqual(errors, [ + 'path/to/file: missing or invalid labels', + 'another/file: missing or invalid tags' + ]); + + const errors2 = []; + expectArray(errors2, {}, 'labels', 'path/to/file'); + expectArray(errors2, undefined, 'labels', 'path/to/file'); + assert.deepStrictEqual(errors2, [ + 'path/to/file: missing or invalid labels', + 'path/to/file: missing or invalid labels', + ]); + }); +}); diff --git a/scripts/validate-metadata.js b/scripts/validate-metadata.js index ab722bfc..c44d8177 100644 --- a/scripts/validate-metadata.js +++ b/scripts/validate-metadata.js @@ -212,4 +212,5 @@ module.exports = { normalizeModelKey, listMetadataFiles, expectString, + expectArray, };