@salla.sa/twilight-components
Version:
Salla Web Component
70 lines (69 loc) • 2.61 kB
JavaScript
/*!
* Crafted with ❤ by Salla
*/
import { newSpecPage } from "@stencil/core/testing";
import { SallaCountDown } from "../salla-count-down";
describe('salla-count-down', () => {
it('should build', () => {
expect(new SallaCountDown()).toBeTruthy();
});
describe('rendering', () => {
it('should be able to render component', async () => {
let page = await newSpecPage({
components: [SallaCountDown],
html: '<salla-count-down date="2023-5-22 16:37:52" labeled color="primary">></salla-count-down>'
});
await page.waitForChanges();
let component = page.doc.querySelector('salla-count-down');
expect(component.date).toBe("2023-5-22 16:37:52");
});
it('should be able to render empty content for empty date prop', async () => {
let page = await newSpecPage({
components: [SallaCountDown],
html: '<salla-count-down date="" labeled color="primary">></salla-count-down>'
});
await page.waitForChanges();
let component = page.doc.querySelector('salla-count-down');
expect(component.innerHTML.trim().length).toBe(4);
});
it('should be able to render empty content for invalid date', async () => {
let page = await newSpecPage({
components: [SallaCountDown],
html: '<salla-count-down date="2023-13-31 16:37:52" labeled color="primary">></salla-count-down>'
});
await page.waitForChanges();
let elements = await page.doc.getElementsByClassName('s-count-down-text-center');
expect(elements.length).toBe(1);
});
});
describe("testing methods", () => {
let page;
let element;
//@ts-ignore
let date;
it("should stop countdown and reset values to 0", async () => {
jest.useFakeTimers();
date = new Date();
date.setSeconds(date.getSeconds() + 5);
page = await newSpecPage({
components: [SallaCountDown],
html: `<salla-count-down date={date.toJSON()}></salla-count-down>`
});
await page.waitForChanges();
element = await page.doc.querySelector('salla-count-down');
jest.runAllTimers();
let endClass = await page.doc.getElementsByClassName('s-count-down-ended');
expect(endClass.length).toBe(0);
await element.endCountDown()
//@ts-ignore
.then(async (resp) => {
await page.waitForChanges();
//@ts-ignore
let a = await page.doc.getElementsByClassName('s-count-down-ended');
expect(a).not.toBeNull();
});
jest.useRealTimers();
});
});
});
//# sourceMappingURL=salla-count-down.spec.js.map