mirror of
https://github.com/langgenius/dify.git
synced 2026-06-07 16:32:01 +08:00
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
61 lines
2.4 KiB
TypeScript
61 lines
2.4 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { runEnvList } from './run-list'
|
|
|
|
const stub = (overrides: Record<string, string> = {}) => (name: string) => overrides[name]
|
|
|
|
describe('runEnvList', () => {
|
|
it('text: header is NAME VALUE DESCRIPTION', () => {
|
|
const out = runEnvList({ lookup: stub() })
|
|
expect(out.split('\n')[0]).toMatch(/^NAME\s+VALUE\s+DESCRIPTION$/)
|
|
})
|
|
|
|
it('text: <unset> for unset non-sensitive var', () => {
|
|
const out = runEnvList({ lookup: stub() })
|
|
const hostLine = out.split('\n').find(l => l.startsWith('DIFY_HOST'))!
|
|
expect(hostLine).toContain('<unset>')
|
|
})
|
|
|
|
it('text: prints actual value for set non-sensitive var', () => {
|
|
const out = runEnvList({ lookup: stub({ DIFY_HOST: 'https://acme' }) })
|
|
const hostLine = out.split('\n').find(l => l.startsWith('DIFY_HOST'))!
|
|
expect(hostLine).toContain('https://acme')
|
|
})
|
|
|
|
it('text: <set> for set sensitive var (token never echoed)', () => {
|
|
const out = runEnvList({ lookup: stub({ DIFY_TOKEN: 'dfoa_secret' }) })
|
|
const tokLine = out.split('\n').find(l => l.startsWith('DIFY_TOKEN'))!
|
|
expect(tokLine).toContain('<set>')
|
|
expect(tokLine).not.toContain('dfoa_secret')
|
|
})
|
|
|
|
it('text: <unset> for unset sensitive var', () => {
|
|
const out = runEnvList({ lookup: stub() })
|
|
const tokLine = out.split('\n').find(l => l.startsWith('DIFY_TOKEN'))!
|
|
expect(tokLine).toContain('<unset>')
|
|
})
|
|
|
|
it('text: rows are sorted alphabetically by name', () => {
|
|
const out = runEnvList({ lookup: stub() })
|
|
const lines = out.trim().split('\n').slice(1).map(l => l.split(/\s+/)[0])
|
|
const sorted = [...lines].sort()
|
|
expect(lines).toEqual(sorted)
|
|
})
|
|
|
|
it('json: emits array with name/description/sensitive/value fields', () => {
|
|
const out = runEnvList({ json: true, lookup: stub({ DIFY_HOST: 'https://acme', DIFY_TOKEN: 'dfoa_x' }) })
|
|
const parsed = JSON.parse(out) as Array<{ name: string, sensitive: boolean, value: string }>
|
|
expect(parsed.length).toBeGreaterThan(0)
|
|
const host = parsed.find(r => r.name === 'DIFY_HOST')!
|
|
expect(host.sensitive).toBe(false)
|
|
expect(host.value).toBe('https://acme')
|
|
const tok = parsed.find(r => r.name === 'DIFY_TOKEN')!
|
|
expect(tok.sensitive).toBe(true)
|
|
expect(tok.value).toBe('<set>')
|
|
})
|
|
|
|
it('json: trailing newline matches Go encoder.Encode', () => {
|
|
const out = runEnvList({ json: true, lookup: stub() })
|
|
expect(out.endsWith('\n')).toBe(true)
|
|
})
|
|
})
|