Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
7f411d8
Upgrade LG modal packages
kraenhansen Nov 25, 2025
534722b
Fix Modal to adopt LG Modal v20
kraenhansen Sep 30, 2025
9bd5ef3
Fix connection-form to work around LG Modal v20
kraenhansen Sep 30, 2025
b6636fa
Update generative-ai to adopt marketing-modal v7
kraenhansen Sep 30, 2025
6c5ad0c
Fix compass-import-export to work around LG modal v20
kraenhansen Sep 30, 2025
f1eb35b
Update compass-welcome to adopt marketing-modal v7
kraenhansen Nov 5, 2025
7bd135b
Update compass-explain-plan to LG Modal v20
kraenhansen Oct 1, 2025
dd96c53
Fix compass-crud to adopt LG modal v20
kraenhansen Oct 1, 2025
87bf751
Update compass-schema to LG Modal v20
kraenhansen Oct 1, 2025
aff685c
Add workaround for jsdom missing HTMLDialogElement support
kraenhansen Oct 2, 2025
2f880ff
Update generative-ai to adopt LG modal v20
kraenhansen Oct 7, 2025
1a5f521
Fix fullScreen prop on derived Modal
kraenhansen Oct 7, 2025
c39e7a8
Remove use of deprecated backdropClassName
kraenhansen Oct 7, 2025
3be9f11
Remove workaround for MarketingModal button disabling
kraenhansen Oct 7, 2025
ddd6d70
Fix remaining components tests
kraenhansen Oct 7, 2025
a991f10
Revert workaround for LG-5593
kraenhansen Oct 8, 2025
df1f960
Update existing tests to handle dialog elements remaining in the DOM
kraenhansen Nov 5, 2025
d9149d6
Update databases-collections to allow immediate removal of the heading
kraenhansen Nov 6, 2025
3e00da1
Update e2e tests to use waitForDisplayed over waitForExist as this is…
kraenhansen Nov 6, 2025
f5ae656
Update e2e tests removing [role=dialog] from confirm dialog selectors
kraenhansen Nov 7, 2025
0f3080a
Update e2e tests to wait for bulk delete modal to disappear
kraenhansen Nov 7, 2025
98b0af1
Update e2e tests to wait for connection form to be non-clickable in a…
kraenhansen Nov 7, 2025
e2904f6
Update e2e tests to fix modal regressions
kraenhansen Nov 21, 2025
aeb4105
Disable pointer events on a closed modal
kraenhansen Nov 10, 2025
a0fdb66
Disable auto-focus on confirmation modal children by default
kraenhansen Nov 10, 2025
911dea5
Add new modal specific commands
kraenhansen Nov 11, 2025
58598b9
Update E2E tests to use new modal commands instead of waitForDisplayed
kraenhansen Nov 11, 2025
e921016
Default initialFocus to "null" to avoid breaking existing modals
kraenhansen Nov 12, 2025
b35aba5
Ensure open modals are interactable
kraenhansen Nov 17, 2025
37695a5
Wait for confirm button to show instead of simply expecting it
kraenhansen Nov 17, 2025
c3a6590
Update FocusMode tests to handle LG Modal v20
kraenhansen Nov 25, 2025
8c0d915
Update SettingsModal tests to handle LG Modal v20
kraenhansen Nov 25, 2025
3e406d7
Clarify disabling the @typescript-eslint/no-namespace and add a TODO …
kraenhansen Nov 26, 2025
a5d81d7
Upgrade LG chat packages and remove unneeded overrides
kraenhansen Nov 26, 2025
6fd267c
Remove removal of extra padding
kraenhansen Nov 26, 2025
472b0fe
Remove unused ChatWindow style and title
kraenhansen Nov 26, 2025
fade46b
Remove InputBar wrapping div & padding correcting styles
kraenhansen Nov 26, 2025
c1e8e32
Fix messages height
kraenhansen Nov 26, 2025
39b4647
Update test to reflect new wording in disclaimer
kraenhansen Nov 26, 2025
468cce2
Override select and tokens in diagramming
kraenhansen Nov 26, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,25 @@ Object.assign(tabbable, {
origTabbable.isTabbable(node, { ...options, displayCheck: 'none' }),
});

// Workaround for missing HTMLDialogElement in jsdom
// See https://github.com/jsdom/jsdom/issues/3294

Object.assign(HTMLDialogElement.prototype, {
show() {
this.open = true;
this.style.display = '';
},
showModal() {
this.open = true;
this.style.display = '';
},
close(returnValue) {
this.open = false;
this.returnValue = returnValue;
this.style.display = 'none';
},
});

// leafygreen (through `clipboard` library) uses deprecated API check that is
// not working in jsdom if copy / paste APIs are supported
if (!window.document.queryCommandSupported) {
Expand Down
43 changes: 43 additions & 0 deletions configs/testing-library-compass/src/assertions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import { Assertion, util } from 'chai';

// TODO(COMPASS-10119): Move declaration into a separate .d.ts and implementation into a *-register.js file as we do with other global patching code intended for tests.

declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace -- We're following a pattern established in the `@types/chai-as-promised` package to add a Chai assertion property.
export namespace Chai {
interface Assertion {
/** Asserts that a dialog is open */
get open(): Assertion;
/** Asserts that a dialog is closed */
get closed(): Assertion;
}
}
}

util.addProperty(
Assertion.prototype,
'open',
function (this: typeof Assertion) {
const obj = util.flag(this, 'object');
new Assertion(obj).to.be.instanceof(HTMLDialogElement);
new Assertion(obj as HTMLDialogElement).has.property(
'open',
true,
'Expected dialog to be open'
);
}
);

util.addProperty(
Assertion.prototype,
'closed',
function (this: typeof Assertion) {
const obj = util.flag(this, 'object');
new Assertion(obj).to.be.instanceof(HTMLDialogElement);
new Assertion(obj as HTMLDialogElement).has.property(
'open',
false,
'Expected dialog to be closed'
);
}
);
2 changes: 2 additions & 0 deletions configs/testing-library-compass/src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ import { expect } from 'chai';
import { Provider } from 'react-redux';
import ConnectionString from 'mongodb-connection-string-url';

import './assertions';

function wait(ms: number) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
Expand Down
Loading