diff --git a/async.test.js b/async.test.js index e8c98dd..7d2fb6f 100644 --- a/async.test.js +++ b/async.test.js @@ -626,6 +626,12 @@ modes.forEach((logic) => { } }) expect(answer).toStrictEqual(['a', 'b']) + + const answer2 = await logic.run({ + keys: 'foo' + }) + + expect(answer2).toStrictEqual([]) }) test('substr', async () => { diff --git a/defaultMethods.js b/defaultMethods.js index 6ee86dc..84b7ecf 100644 --- a/defaultMethods.js +++ b/defaultMethods.js @@ -369,7 +369,7 @@ const defaultMethods = { '!': (value) => Array.isArray(value) ? !value[0] : !value, '!!': (value) => Boolean(Array.isArray(value) ? value[0] : value), cat: (arr) => (typeof arr === 'string' ? arr : arr.join('')), - keys: (obj) => Object.keys(obj), + keys: (obj) => typeof obj === 'object' ? Object.keys(obj) : [], eachKey: { traverse: false, method: (object, context, above, engine) => { diff --git a/test.js b/test.js index 60291b4..3c4fbe3 100644 --- a/test.js +++ b/test.js @@ -652,6 +652,12 @@ modes.forEach((logic) => { }) expect(answer).toStrictEqual(['a', 'b']) + + const answer2 = logic.run({ + keys: 'foo' + }) + + expect(answer2).toStrictEqual([]) }) test('substr', () => {