UNPKG

e2ed

Version:

E2E testing framework over Playwright

57 lines (56 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useContext = void 0; const internalPage_1 = require("./internalPage"); let callCount = 0; /** * Creates functions for `get`, `set` and `clear` some typed value in test context. */ exports.useContext = ((defaultValue) => { callCount += 1; const contextIndex = callCount; /** * Set value to test context. */ const set = (value) => { const page = (0, internalPage_1.getInternalPlaywrightPage)(); if (page.ctx === undefined) { page.ctx = Object.create(null); } if (page.ctx.contexts === undefined) { page.ctx.contexts = {}; } const { contexts } = page.ctx; contexts[contextIndex] = value; }; /** * Clear value in test context (set value to `undefined`). */ const clear = () => set(undefined); if (defaultValue === undefined) { /** * Get value from test context. */ const get = () => { const page = (0, internalPage_1.getInternalPlaywrightPage)(); if (page.ctx === undefined) { page.ctx = Object.create(null); } const { contexts } = page.ctx; return contexts?.[contextIndex]; }; return [get, set, clear]; } /** * Get value from test context (or default value, if it is `undefined`). */ const getWithDefaultValue = () => { const page = (0, internalPage_1.getInternalPlaywrightPage)(); if (page.ctx === undefined) { page.ctx = Object.create(null); } const { contexts } = page.ctx; return contexts?.[contextIndex] ?? defaultValue; }; return [getWithDefaultValue, set, clear]; });