Skip to content

Commit 50341d7

Browse files
authored
test: .defaults().defaults() (#58)
* test: `.defaults().defaults()` * refactor: simplify constructor implementation
1 parent bd9d789 commit 50341d7

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,11 @@ export class Base {
1616
}
1717
static defaults(defaults) {
1818
return class extends this {
19-
constructor(...args) {
20-
super(Object.assign({}, defaults, args[0] || {}));
19+
constructor(options) {
20+
super({
21+
...defaults,
22+
...options,
23+
});
2124
}
2225
};
2326
}

test/base.test.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ test(".defaults({foo: 'bar'})", () => {
3636
assert.equal(defaultsTest.options, { foo: "bar" });
3737
assert.equal(mergedOptionsTest.options, { foo: "bar", baz: "daz" });
3838
});
39+
test(".defaults({one: 1}).defaults({two: 2})", () => {
40+
const BaseWithDefaults = Base.defaults({ one: 1 }).defaults({ two: 2 });
41+
const defaultsTest = new BaseWithDefaults();
42+
const mergedOptionsTest = new BaseWithDefaults({ three: 3 });
43+
assert.equal(defaultsTest.options, { one: 1, two: 2 });
44+
assert.equal(mergedOptionsTest.options, { one: 1, two: 2, three: 3 });
45+
});
3946

4047
test(".plugin().defaults()", () => {
4148
const BaseWithPluginAndDefaults = Base.plugin(fooPlugin).defaults({

0 commit comments

Comments
 (0)