Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion lib/chai/core/assertions.js
Original file line number Diff line number Diff line change
Expand Up @@ -2524,7 +2524,8 @@ function assertKeys(keys) {
});
}

if (!keys.length) {
// Fix for PR #1384: Allow empty keys if the actual object is also empty
if (!keys.length && actual.length) {
Comment thread
43081j marked this conversation as resolved.
Outdated
throw new AssertionError(flagMsg + 'keys required', undefined, ssfi);
}

Expand Down
7 changes: 1 addition & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions test/issue-1384.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import {expect} from '../index.js';

describe('Fix #1384: Empty keys support', function () {
it('should accept empty keys when the object is empty', function () {
Comment thread
43081j marked this conversation as resolved.
Outdated
// Yeh test pehle fail hota tha, ab pass hona chahiye
expect({}).to.have.all.keys([]);
});

it('should still throw error if object has properties but keys are empty', function () {
// Yeh ensure karega ki humne validation poora disable nahi kiya
expect(function () {
expect({a: 1}).to.have.all.keys([]);
}).to.throw('keys required');
});
});