diff --git a/packages/cli-kit/src/public/common/object.test.ts b/packages/cli-kit/src/public/common/object.test.ts index 00dc883cbbf..fa8debce167 100644 --- a/packages/cli-kit/src/public/common/object.test.ts +++ b/packages/cli-kit/src/public/common/object.test.ts @@ -5,6 +5,7 @@ import { deepDifference, deepMergeObjects, getPathValue, + isEmpty, mapValues, pickBy, setPathValue, @@ -364,6 +365,26 @@ describe('compact', () => { }) }) +describe('isEmpty', () => { + test('returns true for empty objects, arrays, maps, sets, strings, and nil values', () => { + expect(isEmpty({})).toBe(true) + expect(isEmpty([])).toBe(true) + expect(isEmpty(new Map())).toBe(true) + expect(isEmpty(new Set())).toBe(true) + expect(isEmpty('' as unknown as object)).toBe(true) + expect(isEmpty(null as unknown as object)).toBe(true) + expect(isEmpty(undefined as unknown as object)).toBe(true) + }) + + test('returns false for non-empty objects, arrays, maps, sets, and strings', () => { + expect(isEmpty({key: 'value'})).toBe(false) + expect(isEmpty([1])).toBe(false) + expect(isEmpty(new Map([['key', 'value']]))).toBe(false) + expect(isEmpty(new Set([1]))).toBe(false) + expect(isEmpty('text' as unknown as object)).toBe(false) + }) +}) + describe('unsetPathValue', () => { test('removes the path value at the top level if it exists', () => { // Given