(t *testing.T)
| 549 | } |
| 550 | |
| 551 | func TestDevConfigResolveEnv(t *testing.T) { |
| 552 | t.Setenv("CODER_SESSION_TOKEN", "leaked") |
| 553 | t.Setenv("CODER_URL", "https://leaked.example.com") |
| 554 | |
| 555 | wd, _ := os.Getwd() |
| 556 | cfg := &devConfig{apiPort: 3000, accessURL: defaultAccessURL} |
| 557 | require.NoError(t, cfg.resolveEnv()) |
| 558 | |
| 559 | assert.Equal(t, wd, cfg.projectRoot) |
| 560 | assert.Equal(t, filepath.Join(wd, "build", |
| 561 | fmt.Sprintf("coder_%s_%s", runtime.GOOS, runtime.GOARCH)), cfg.binaryPath) |
| 562 | assert.Equal(t, filepath.Join(wd, ".coderv2"), cfg.configDir) |
| 563 | assert.Equal(t, "http://127.0.0.1:3000", cfg.accessURL) |
| 564 | assert.Equal(t, int64(3000), cfg.apiPort) |
| 565 | assert.Zero(t, cfg.portOffset) |
| 566 | |
| 567 | // Should have unset leaked env vars. |
| 568 | assert.Empty(t, os.Getenv("CODER_SESSION_TOKEN")) |
| 569 | assert.Empty(t, os.Getenv("CODER_URL")) |
| 570 | |
| 571 | // childEnv should be populated and exclude leaked vars. |
| 572 | require.NotEmpty(t, cfg.childEnv) |
| 573 | for _, e := range cfg.childEnv { |
| 574 | k, _, _ := strings.Cut(e, "=") |
| 575 | assert.NotEqual(t, "CODER_SESSION_TOKEN", k) |
| 576 | assert.NotEqual(t, "CODER_URL", k) |
| 577 | } |
| 578 | } |
| 579 | |
| 580 | func TestDevConfigResolveEnvUsesDefaultPortsWithoutPortOffset(t *testing.T) { |
| 581 | t.Setenv("CODER_SESSION_TOKEN", "") |
nothing calls this directly
no test coverage detected