Skip to content

Commit

Permalink
feat(): new provider: set-timeout
Browse files Browse the repository at this point in the history
  • Loading branch information
weareoutman committed Sep 4, 2024
1 parent 5c0f3c4 commit fceccdc
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
1 change: 1 addition & 0 deletions bricks/basic/src/bootstrap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,4 @@ import "./message-listener/index.js";
import "./broadcast-channel/index.js";
import "./home-redirect/index.js";
import "./iframe/index.js";
import "./data-providers/set-timeout.js";
18 changes: 18 additions & 0 deletions bricks/basic/src/data-providers/set-timeout.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { describe, test, expect } from "@jest/globals";
import { providerSetTimeout } from "./set-timeout.js";

describe("providerSetTimeout", () => {
beforeAll(() => {
jest.useFakeTimers();
});

afterAll(() => {
jest.useRealTimers();
});

test("should work", async () => {
const promise = providerSetTimeout(100, "done");
jest.advanceTimersByTime(100);
expect(promise).resolves.toBe("done");
});
});
21 changes: 21 additions & 0 deletions bricks/basic/src/data-providers/set-timeout.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { createProviderClass } from "@next-core/utils/general";

/**
* @param delay Delay in milliseconds
* @param returnValue
*/
export function providerSetTimeout(
delay?: number,
returnValue?: unknown
): Promise<unknown> {
return new Promise((resolve) => {
setTimeout(() => {
resolve(returnValue);
}, delay);
});
}

customElements.define(
"basic.set-timeout",
createProviderClass(providerSetTimeout)
);

0 comments on commit fceccdc

Please sign in to comment.