import { describe, it, expect } from 'vitest' import { formatEnvironment } from '../../src/formatter/environment.js' import type { EnvironmentFile } from '../../src/types.js' describe('formatEnvironment', () => { it('puts non-secret vars in vars block', () => { const env: EnvironmentFile = { name: 'dev', variables: [ { name: 'api_url', value: 'http://localhost:3000', enabled: true, secret: false }, { name: 'token', value: 'abc123', enabled: true, secret: false }, ], } const out = formatEnvironment(env) expect(out).toContain('vars {') expect(out).toContain('api_url: http://localhost:3000') expect(out).toContain('token: abc123') expect(out).not.toContain('vars:secret') }) it('puts secret vars in vars:secret block', () => { const env: EnvironmentFile = { name: 'prod', variables: [ { name: 'db_password', value: 'supersecret', enabled: true, secret: true }, { name: 'api_key', value: 'key', enabled: true, secret: true }, ], } const out = formatEnvironment(env) expect(out).toContain('vars:secret [') expect(out).toContain('db_password') expect(out).toContain('api_key') expect(out).not.toContain('vars {') }) it('uses ~ prefix for disabled non-secret vars', () => { const env: EnvironmentFile = { name: 'dev', variables: [ { name: 'active', value: 'yes', enabled: true, secret: false }, { name: 'disabled_var', value: 'no', enabled: false, secret: false }, ], } const out = formatEnvironment(env) expect(out).toContain('active: yes') expect(out).toContain('~disabled_var: no') }) it('uses ~ prefix for disabled secret vars', () => { const env: EnvironmentFile = { name: 'dev', variables: [ { name: 'active_secret', value: 'x', enabled: true, secret: true }, { name: 'disabled_secret', value: 'y', enabled: false, secret: true }, ], } const out = formatEnvironment(env) expect(out).toContain('active_secret') expect(out).toContain('~disabled_secret') }) })