UNPKG

@palmares/tests

Version:

This defines a default test framework testing stuff inside of the framework

185 lines (181 loc) 7.5 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/expect.ts function getExpect(value, testAdapter, isNot = false, isEventually = false) { return new Proxy({}, { get: /* @__PURE__ */ __name((_, prop) => { if (prop === "toBe") return (expected, customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toBe(value2, expected, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toBe(value, expected, isNot, customData); else if (prop === "toEqual") return (expected, customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toEqual(value2, expected, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toEqual(value, expected, isNot, customData); else if (prop === "toStrictEqual") return (expected, customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toStrictEqual(value2, expected, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toStrictEqual(value, expected, isNot, customData); else if (prop === "toBeInstanceOf") return (expected, customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toBeInstanceOf(value2, expected, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toBeInstanceOf(value, expected, isNot, customData); else if (prop === "toBeDefined") return (customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toBeDefined(value2, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toBeDefined(value, isNot, customData); else if (prop === "toHaveBeenCalled") return (customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toHaveBeenCalled(value2, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toHaveBeenCalled(value, isNot, customData); else if (prop === "toHaveBeenCalledTimes") return (expected, customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toHaveBeenCalledTimes(value2, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toHaveBeenCalledTimes(expected, isNot, customData); else if (prop === "toHaveBeenCalledWith") return (args, customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toHaveBeenCalledWith(value2, args, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toHaveBeenCalledWith(value, args, isNot, customData); else if (prop === "toHaveReturned") return (customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toHaveReturned(value2, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toHaveReturned(value, isNot, customData); else if (prop === "toHaveReturnedTimes") return (expected, customData) => isEventually ? new Promise((resolve, reject) => { Promise.resolve(value).then((value2) => { try { resolve(testAdapter.expect.toHaveReturnedTimes(value2, expected, isNot, customData)); } catch (error) { reject(error); } }).catch(reject); }) : testAdapter.expect.toHaveReturnedTimes(value, expected, isNot, customData); if (prop === "not") return getExpect(value, testAdapter, true, false); if (prop === "eventually") return getExpect(value, testAdapter, isNot, true); throw new Error(`Expect.${String(prop)} is not a function`); }, "get") }); } __name(getExpect, "getExpect"); // src/utils.ts function getTestAdapter() { if (!globalThis.$PTestAdapter) { throw new Error("Test adapter not set"); } return globalThis.$PTestAdapter; } __name(getTestAdapter, "getTestAdapter"); function getTestAdapterCustomProps() { if (!globalThis.$PTestAdapterCustomProps) { throw new Error("Test adapter custom props not set"); } return globalThis.$PTestAdapterCustomProps; } __name(getTestAdapterCustomProps, "getTestAdapterCustomProps"); // src/functions.ts function describe(descriptionName, callback, customArgs) { const defaultTestAdapter = getTestAdapter(); const custom = getTestAdapterCustomProps(); defaultTestAdapter.functions.getDescribe(descriptionName, () => { return callback({ test, beforeEach, afterEach, custom }); }, customArgs); } __name(describe, "describe"); function test(testName, callback, customArgs) { const defaultTestAdapter = getTestAdapter(); defaultTestAdapter.functions.getTest(testName, async () => Promise.resolve(callback({ expect, custom: await defaultTestAdapter.getCustomProps() })), customArgs); } __name(test, "test"); function beforeEach(callback, customArgs) { const defaultTestAdapter = getTestAdapter(); defaultTestAdapter.functions.getBeforeEach(async () => Promise.resolve(callback({ custom: await defaultTestAdapter.getCustomProps() })), customArgs); } __name(beforeEach, "beforeEach"); function afterEach(callback, customArgs) { const defaultTestAdapter = getTestAdapter(); defaultTestAdapter.functions.getAfterEach(async () => Promise.resolve(callback({ custom: await defaultTestAdapter.getCustomProps() })), customArgs); } __name(afterEach, "afterEach"); function beforeAll(callback, customArgs) { const defaultTestAdapter = getTestAdapter(); defaultTestAdapter.functions.getBeforeAll(async () => Promise.resolve(callback({ custom: await defaultTestAdapter.getCustomProps() })), customArgs); } __name(beforeAll, "beforeAll"); function afterAll(callback, customArgs) { const defaultTestAdapter = getTestAdapter(); defaultTestAdapter.functions.getAfterAll(async () => Promise.resolve(callback({ custom: await defaultTestAdapter.getCustomProps() })), customArgs); } __name(afterAll, "afterAll"); function expect(value) { return getExpect(value, getTestAdapter()); } __name(expect, "expect"); export { afterAll, afterEach, beforeAll, beforeEach, describe, expect, test };