Home / File/ env.spec.ts — vite Source File

env.spec.ts — vite Source File

Architecture documentation for env.spec.ts, a typescript file in the vite codebase. 4 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  c768cf64_25c5_e957_9667_10aba8bb219a["env.spec.ts"]
  7fa76fc1_cb1b_cf98_0900_1217276f6616["env.ts"]
  c768cf64_25c5_e957_9667_10aba8bb219a --> 7fa76fc1_cb1b_cf98_0900_1217276f6616
  dbbbbbec_1500_ac8a_4605_9194e2cfb45d["loadEnv"]
  c768cf64_25c5_e957_9667_10aba8bb219a --> dbbbbbec_1500_ac8a_4605_9194e2cfb45d
  51e96894_3556_ed5c_1ede_97d449867adf["node:path"]
  c768cf64_25c5_e957_9667_10aba8bb219a --> 51e96894_3556_ed5c_1ede_97d449867adf
  a340ba46_b2b7_3048_3bb3_6907a74c8464["vitest"]
  c768cf64_25c5_e957_9667_10aba8bb219a --> a340ba46_b2b7_3048_3bb3_6907a74c8464
  style c768cf64_25c5_e957_9667_10aba8bb219a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { join } from 'node:path'
import { describe, expect, test } from 'vitest'
import { loadEnv } from '../env'

const dirname = import.meta.dirname

describe('loadEnv', () => {
  test('basic', () => {
    expect(loadEnv('development', join(dirname, './env')))
      .toMatchInlineSnapshot(`
        {
          "VITE_APP_BASE_ROUTE": "/",
          "VITE_APP_BASE_URL": "/",
          "VITE_ENV1": "ENV1",
          "VITE_ENV2": "ENV2",
          "VITE_ENV3": "ENV3",
        }
      `)
  })

  test('specific prefix', () => {
    expect(loadEnv('development', join(dirname, './env'), 'VVITE'))
      .toMatchInlineSnapshot(`
        {
          "VVITE_A": "A",
          "VVITE_B": "B",
        }
      `)
  })

  test('override', () => {
    expect(loadEnv('production', join(dirname, './env')))
      .toMatchInlineSnapshot(`
        {
          "VITE_APP_BASE_ROUTE": "/app/",
          "VITE_APP_BASE_URL": "/app/",
        }
      `)
  })

  test('override 2', () => {
    expect(loadEnv('development2', join(dirname, './env')))
      .toMatchInlineSnapshot(`
        {
          "VITE_APP_BASE_ROUTE": "source",
          "VITE_APP_BASE_URL": "source",
          "VITE_SOURCE": "source",
        }
      `)
  })

  test('VITE_USER_NODE_ENV', () => {
    loadEnv('development', join(dirname, './env'))
    expect(process.env.VITE_USER_NODE_ENV).toEqual(undefined)
  })

  test('VITE_USER_NODE_ENV for dev behaviour in build', () => {
    const _nodeEnv = process.env.NODE_ENV
    process.env.NODE_ENV = 'production'
    loadEnv('testing', join(dirname, './env'))
    expect(process.env.VITE_USER_NODE_ENV).toEqual('development')
    process.env.NODE_ENV = _nodeEnv
  })

  test('Already exists VITE_USER_NODE_ENV', () => {
    process.env.VITE_USER_NODE_ENV = 'test'
    loadEnv('development', join(dirname, './env'))
    expect(process.env.VITE_USER_NODE_ENV).toEqual('test')
  })

  test('prioritize existing process.env', () => {
    process.env.VITE_ENV_TEST_ENV = 'EXIST'
    expect(loadEnv('existing', join(dirname, './env'))).toMatchInlineSnapshot(`
        {
          "VITE_APP_BASE_ROUTE": "/",
          "VITE_APP_BASE_URL": "/",
          "VITE_ENV_TEST_ENV": "EXIST",
          "VITE_USER_NODE_ENV": "test",
        }
      `)
  })
})

Domain

Dependencies

Frequently Asked Questions

What does env.spec.ts do?
env.spec.ts is a source file in the vite codebase, written in typescript. It belongs to the ViteCore domain.
What does env.spec.ts depend on?
env.spec.ts imports 4 module(s): env.ts, loadEnv, node:path, vitest.
Where is env.spec.ts in the architecture?
env.spec.ts is located at packages/vite/src/node/__tests__/env.spec.ts (domain: ViteCore, directory: packages/vite/src/node/__tests__).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free