/** * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import * as assert from 'assert'; import { describe, it } from 'node:test'; import { isObject } from '../../src/common/types.js'; describe('isObject', () => { it('accepts plain objects', () => { assert.strictEqual(isObject({}), true); assert.strictEqual(isObject({ a: 1 }), true); }); it('rejects arrays', () => { // Arrays aren't records: config like `googleSearch: [...]` must fail // with a clear error instead of being read as an object. assert.strictEqual(isObject([]), false); assert.strictEqual(isObject([{ a: 1 }]), false); }); it('rejects null and non-objects', () => { assert.strictEqual(isObject(null), false); assert.strictEqual(isObject(undefined), false); assert.strictEqual(isObject('text'), false); assert.strictEqual(isObject(1), false); assert.strictEqual(isObject(true), false); }); });