Skip to content

Commit

Permalink
Add beforeEach hook to clear test environment variables
Browse files Browse the repository at this point in the history
  • Loading branch information
ivandotv committed Mar 22, 2024
1 parent 05ee7c1 commit 6e086a2
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 14 deletions.
15 changes: 14 additions & 1 deletion src/__tests__/filesystem/dev-env/dev-env.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import { describe, expect, test } from "vitest"
import { beforeEach, describe, expect, test } from "vitest"
import { setupEnv } from "../../../index"
import { clearTestEnvVars } from "../../utils"

describe("Dev Files", () => {
beforeEach(clearTestEnvVars)

test("env dev test", () => {
process.env.NODE_ENV = "DEVELOPMENT"

Expand All @@ -11,6 +14,16 @@ describe("Dev Files", () => {
expect(process.env.FROM_EXPAND).toEqual(".env.development.local")
})

test("do not override a variable that is present in the process.env", () => {
process.env.NODE_ENV = "DEVELOPMENT"
process.env.MY_ENV = "process.env"

setupEnv(__dirname)

expect(process.env.MY_ENV).toBe("process.env")
expect(process.env.FROM_EXPAND).toBe(".env.development.local")
})

describe("Custom ENV var", () => {
test("env dev test", () => {
process.env.NODE_CONTEXT = "DEVELOPMENT"
Expand Down
5 changes: 4 additions & 1 deletion src/__tests__/filesystem/test-env/test-env.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import { describe, expect, test } from "vitest"
import { beforeEach, describe, expect, test } from "vitest"
import { setupEnv } from "../../../index"
import { clearTestEnvVars } from "../../utils"

describe("env: TEST", () => {
beforeEach(clearTestEnvVars)

test("do not load .local files", () => {
process.env.NODE_ENV = "TEST"

Expand Down
16 changes: 4 additions & 12 deletions src/__tests__/setupEnv.test.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,14 @@
import fs from "node:fs"
import dotEnv from "dotenv"
import { afterEach, beforeEach, describe, expect, test, vitest } from "vitest"
import fs from "node:fs"
import { beforeEach, describe, expect, test, vitest } from "vitest"
import { setupEnv } from "../index"
import { clearTestEnvVars } from "./utils"

vitest.mock("node:fs")
vitest.mock("dotenv")

describe("Env", () => {
const env = process.env

beforeEach(() => {
vitest.resetAllMocks()
process.env = { ...env }
})

afterEach(() => {
process.env = env
})
beforeEach(clearTestEnvVars)

test('node_env="development"', () => {
process.env.NODE_ENV = "DEVELOPMENT"
Expand Down
6 changes: 6 additions & 0 deletions src/__tests__/utils.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export function clearTestEnvVars() {
delete process.env.NODE_ENV
delete process.env.NODE_CONTEXT
delete process.env.MY_ENV
delete process.env.FROM_EXPAND
}

0 comments on commit 6e086a2

Please sign in to comment.