@nph.muller/next-runtime-env
Version:
Next.js Runtime Environment Configuration - Populates your environment at runtime rather than build time.
59 lines • 5.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
require("@testing-library/jest-dom");
const react_1 = require("@testing-library/react");
const public_env_script_1 = require("./public-env-script");
// TODO: mock next/headers
let processEnv;
beforeAll(() => {
processEnv = process.env;
});
afterAll(() => {
process.env = processEnv;
});
describe('PublicEnvProvider', () => {
beforeEach(() => {
process.env = {};
});
it('should set a public env in the script', () => {
process.env = {
NEXT_PUBLIC_FOO: 'foo-value',
};
const { getByTestId } = (0, react_1.render)((0, jsx_runtime_1.jsx)(public_env_script_1.PublicEnvScript, {}));
expect(getByTestId('env-script').textContent).toBe(`window['__ENV'] = {"NEXT_PUBLIC_FOO":"foo-value"}`);
});
it('should not set a private env in the script', () => {
process.env = {
BAR: 'bar-value',
};
const { getByTestId } = (0, react_1.render)((0, jsx_runtime_1.jsx)(public_env_script_1.PublicEnvScript, {}));
expect(getByTestId('env-script').textContent).toBe(`window['__ENV'] = {}`);
});
it('should only set public env in the script', () => {
process.env = {
NEXT_PUBLIC_FOO: 'foo-value',
BAR: 'bar-value',
};
const { getByTestId } = (0, react_1.render)((0, jsx_runtime_1.jsx)(public_env_script_1.PublicEnvScript, {}));
expect(getByTestId('env-script').textContent).toBe(`window['__ENV'] = {"NEXT_PUBLIC_FOO":"foo-value"}`);
});
it("should set a nonce when it's available", () => {
process.env = {
NEXT_PUBLIC_FOO: 'foo-value',
BAR: 'bar-value',
};
const nonce = 'test-nonce-xyz';
const { getByTestId } = (0, react_1.render)((0, jsx_runtime_1.jsx)(public_env_script_1.PublicEnvScript, { nonce: nonce }));
expect(getByTestId('env-script')).toHaveAttribute('nonce', nonce);
});
it("should not set a nonce when it's not available", () => {
process.env = {
NEXT_PUBLIC_FOO: 'foo-value',
BAR: 'bar-value',
};
const { getByTestId } = (0, react_1.render)((0, jsx_runtime_1.jsx)(public_env_script_1.PublicEnvScript, {}));
expect(getByTestId('env-script')).not.toHaveAttribute('nonce');
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWVudi1zY3JpcHQuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHQvcHVibGljLWVudi1zY3JpcHQuc3BlYy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQW1DO0FBRW5DLGtEQUFnRDtBQUVoRCwyREFBc0Q7QUFFdEQsMEJBQTBCO0FBRTFCLElBQUksVUFBNkIsQ0FBQztBQUVsQyxTQUFTLENBQUMsR0FBRyxFQUFFO0lBQ2IsVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFDM0IsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsR0FBRyxFQUFFO0lBQ1osT0FBTyxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUM7QUFDM0IsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxPQUFPLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7UUFDL0MsT0FBTyxDQUFDLEdBQUcsR0FBRztZQUNaLGVBQWUsRUFBRSxXQUFXO1NBQzdCLENBQUM7UUFFRixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBQSxjQUFNLEVBQUMsdUJBQUMsbUNBQWUsS0FBRyxDQUFDLENBQUM7UUFFcEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ2hELG1EQUFtRCxDQUNwRCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO1FBQ3BELE9BQU8sQ0FBQyxHQUFHLEdBQUc7WUFDWixHQUFHLEVBQUUsV0FBVztTQUNqQixDQUFDO1FBRUYsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUEsY0FBTSxFQUFDLHVCQUFDLG1DQUFlLEtBQUcsQ0FBQyxDQUFDO1FBRXBELE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDN0UsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMENBQTBDLEVBQUUsR0FBRyxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLEdBQUc7WUFDWixlQUFlLEVBQUUsV0FBVztZQUM1QixHQUFHLEVBQUUsV0FBVztTQUNqQixDQUFDO1FBRUYsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUEsY0FBTSxFQUFDLHVCQUFDLG1DQUFlLEtBQUcsQ0FBQyxDQUFDO1FBRXBELE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNoRCxtREFBbUQsQ0FDcEQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxPQUFPLENBQUMsR0FBRyxHQUFHO1lBQ1osZUFBZSxFQUFFLFdBQVc7WUFDNUIsR0FBRyxFQUFFLFdBQVc7U0FDakIsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDO1FBRS9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFBLGNBQU0sRUFBQyx1QkFBQyxtQ0FBZSxJQUFDLEtBQUssRUFBRSxLQUFLLEdBQUksQ0FBQyxDQUFDO1FBRWxFLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtRQUN4RCxPQUFPLENBQUMsR0FBRyxHQUFHO1lBQ1osZUFBZSxFQUFFLFdBQVc7WUFDNUIsR0FBRyxFQUFFLFdBQVc7U0FDakIsQ0FBQztRQUVGLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFBLGNBQU0sRUFBQyx1QkFBQyxtQ0FBZSxLQUFHLENBQUMsQ0FBQztRQUVwRCxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=