blob: cc5754bea8c83d98acc1f8a496430fc0eacd6417 [file] [log] [blame]
import './index';
import { expect } from 'chai';
import { ConfirmDialogSk } from './confirm-dialog-sk';
import { setUpElementUnderTest } from '../test_util';
function invertPromise(p: Promise<any>) {
return p.then(
(x) => {
throw x;
},
(x) => x
);
}
describe('confirm-dialog-sk', () => {
const newElement =
setUpElementUnderTest<ConfirmDialogSk>('confirm-dialog-sk');
let confirmDialogSk: ConfirmDialogSk;
beforeEach(() => {
confirmDialogSk = newElement();
});
describe('promise', () => {
it('resolves when OK is clicked', () => {
const promise = confirmDialogSk.open('Testing');
const button =
confirmDialogSk.querySelector<HTMLButtonElement>('button.confirm')!;
expect(button.textContent).to.equal('OK');
expect(confirmDialogSk.querySelector('.message')?.textContent).to.equal(
'Testing'
);
button.click();
return promise; // Return the promise and let Mocha check that it resolves.
});
it('rejects when Cancel is clicked', () => {
const promise = confirmDialogSk.open('Testing');
const button =
confirmDialogSk.querySelector<HTMLButtonElement>('button.dismiss')!;
expect(button.textContent).to.equal('Cancel');
button.click();
return invertPromise(promise);
});
});
describe('appearance', () => {
it('sets shown on the inner dialog-sk', () => {
expect(confirmDialogSk.querySelector('dialog')?.hasAttribute('open')).to
.be.false;
confirmDialogSk.open('whatever');
expect(confirmDialogSk.querySelector('dialog')?.hasAttribute('open')).to
.be.true;
});
});
});