Skip to content

Commit d1e1795

Browse files
authored
Merge pull request #2200 from eliasdawson-addepar/undefined-exists-issue-2186
Fix `assert.dom(undefined)` does not throw, fixes #2186
2 parents 3d26080 + 0582fa2 commit d1e1795

4 files changed

Lines changed: 15 additions & 7 deletions

File tree

packages/qunit-dom/lib/assertions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export default class DOMAssertions {
5454
* @hideconstructor
5555
*/
5656
constructor(
57-
target: string | Element | null | IDOMElementDescriptor,
57+
target: string | Element | null | IDOMElementDescriptor | undefined,
5858
rootElement: RootElement,
5959
private testContext: Assert
6060
) {

packages/qunit-dom/lib/descriptor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class ElementData {
4747
* Create an {@link IDOMElementDescriptor} from a target and a root element
4848
*/
4949
export default function createDescriptor(
50-
target: string | Element | null | IDOMElementDescriptor,
50+
target: string | Element | null | IDOMElementDescriptor | undefined,
5151
rootElement: RootElement
5252
): IDOMElementDescriptor {
5353
if (typeof target === 'string') {

packages/qunit-dom/lib/install.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@ export default function (assert: Assert) {
2525

2626
rootElement = rootElement || this.dom.rootElement || getRootElement();
2727

28-
return new DOMAssertions(
29-
target !== undefined ? target : rootElement instanceof Element ? rootElement : null,
30-
rootElement,
31-
this
32-
);
28+
// Only default to rootElement when NO arguments provided.
29+
// This allows assert.dom(undefined) to throw while assert.dom() still works.
30+
if (arguments.length === 0) {
31+
target = rootElement instanceof Element ? rootElement : null;
32+
}
33+
34+
return new DOMAssertions(target, rootElement, this);
3335
};
3436

3537
function isValidRootElement(element: any): element is Element {

packages/test-app/tests/acceptance/qunit-dom-test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,11 @@ module('Acceptance | qunit-dom', function (hooks) {
5151
() => assert.dom('foo', 'bar'),
5252
/bar is not a valid root element/,
5353
);
54+
55+
assert.throws(
56+
() => assert.dom(undefined),
57+
/Unexpected Parameter: undefined/,
58+
'assert.dom(undefined) throws',
59+
);
5460
});
5561
});

0 commit comments

Comments
 (0)