diff --git a/packages/shared/utils/index.test.ts b/packages/shared/utils/index.test.ts index 33d4169f453..5b9ab5f33b3 100644 --- a/packages/shared/utils/index.test.ts +++ b/packages/shared/utils/index.test.ts @@ -1,5 +1,5 @@ import { ref } from 'vue-demi' -import { createFilterWrapper, debounceFilter, increaseWithUnit, throttleFilter } from '.' +import { createFilterWrapper, debounceFilter, increaseWithUnit, objectPick, throttleFilter } from '.' describe('utils', () => { it('increaseWithUnit', () => { @@ -12,6 +12,11 @@ describe('utils', () => { expect(increaseWithUnit('100 %', 10)).toEqual('110 %') expect(increaseWithUnit('var(--cool)', -5)).toEqual('var(--cool)') }) + + it('objectPick', () => { + expect(objectPick({ a: 1, b: 2, c: 3 }, ['a', 'b'])).toEqual({ a: 1, b: 2 }) + expect(objectPick({ a: 1, b: 2, c: undefined }, ['a', 'b'], true)).toEqual({ a: 1, b: 2 }) + }) }) describe('filters', () => { diff --git a/packages/shared/utils/index.ts b/packages/shared/utils/index.ts index 990130b51ca..d9603ebd300 100644 --- a/packages/shared/utils/index.ts +++ b/packages/shared/utils/index.ts @@ -95,7 +95,7 @@ export function increaseWithUnit(target: string | number, delta: number): string export function objectPick(obj: O, keys: T[], omitUndefined = false) { return keys.reduce((n, k) => { if (k in obj) { - if (!omitUndefined || !obj[k] === undefined) + if (!omitUndefined || obj[k] !== undefined) n[k] = obj[k] } return n