@nph.muller/next-runtime-env
Version:
Next.js Runtime Environment Configuration - Populates your environment at runtime rather than build time.
37 lines • 3.79 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 env_script_1 = require("./env-script");
// TODO: mock next/headers
let processEnv;
beforeAll(() => {
processEnv = process.env;
});
afterAll(() => {
process.env = processEnv;
});
describe('EnvProvider', () => {
beforeEach(() => {
process.env = {};
});
it('should set the env in the script', () => {
const env = { NODE_ENV: 'test', API_URL: 'http://localhost:3000' };
const { getByTestId } = (0, react_1.render)((0, jsx_runtime_1.jsx)(env_script_1.EnvScript, { env: env }));
expect(getByTestId('env-script').textContent).toBe(`window['__ENV'] = ${JSON.stringify(env)}`);
});
it("should set a nonce when it's available", () => {
const env = { NODE_ENV: 'test', API_URL: 'http://localhost:3000' };
const nonce = 'test-nonce-xyz';
const { getByTestId } = (0, react_1.render)((0, jsx_runtime_1.jsx)(env_script_1.EnvScript, { env: env, nonce: nonce }));
expect(getByTestId('env-script')).toHaveAttribute('nonce', nonce);
});
it("should not set a nonce when it's not available", () => {
const env = { NODE_ENV: 'test', API_URL: 'http://localhost:3000' };
const { getByTestId } = (0, react_1.render)((0, jsx_runtime_1.jsx)(env_script_1.EnvScript, { env: env }));
expect(getByTestId('env-script')).not.toHaveAttribute('nonce');
});
it.todo('should get the nonce from the headers when the headerKey is provided');
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LXNjcmlwdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdC9lbnYtc2NyaXB0LnNwZWMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFtQztBQUVuQyxrREFBZ0Q7QUFFaEQsNkNBQXlDO0FBRXpDLDBCQUEwQjtBQUUxQixJQUFJLFVBQTZCLENBQUM7QUFFbEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtJQUNiLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBQzNCLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLEdBQUcsRUFBRTtJQUNaLE9BQU8sQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDO0FBQzNCLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7SUFDM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUMxQyxNQUFNLEdBQUcsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUM7UUFFbkUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUEsY0FBTSxFQUFDLHVCQUFDLHNCQUFTLElBQUMsR0FBRyxFQUFFLEdBQUcsR0FBSSxDQUFDLENBQUM7UUFFeEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ2hELHFCQUFxQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQzNDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxHQUFHLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1FBQ25FLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDO1FBRS9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFBLGNBQU0sRUFBQyx1QkFBQyxzQkFBUyxJQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBSSxDQUFDLENBQUM7UUFFdEUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO1FBQ3hELE1BQU0sR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQztRQUVuRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBQSxjQUFNLEVBQUMsdUJBQUMsc0JBQVMsSUFBQyxHQUFHLEVBQUUsR0FBRyxHQUFJLENBQUMsQ0FBQztRQUV4RCxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxJQUFJLENBQ0wsc0VBQXNFLENBQ3ZFLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyJ9