MCPcopy Index your code
hub / github.com/coder/coder / TestCreateParameterMapFromFile

Function TestCreateParameterMapFromFile

cli/parameter_internal_test.go:11–59  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

9)
10
11func TestCreateParameterMapFromFile(t *testing.T) {
12 t.Parallel()
13 t.Run("CreateParameterMapFromFile", func(t *testing.T) {
14 t.Parallel()
15 tempDir := t.TempDir()
16 parameterFile, _ := os.CreateTemp(tempDir, "testParameterFile*.yaml")
17 _, _ = parameterFile.WriteString("region: \"bananas\"\ndisk: \"20\"\n")
18
19 parameterMapFromFile, err := parseParameterMapFile(parameterFile.Name())
20
21 expectedMap := map[string]string{
22 "region": "bananas",
23 "disk": "20",
24 }
25
26 assert.Equal(t, expectedMap, parameterMapFromFile)
27 assert.Nil(t, err)
28
29 removeTmpDirUntilSuccess(t, tempDir)
30 })
31 t.Run("WithInvalidFilename", func(t *testing.T) {
32 t.Parallel()
33
34 parameterMapFromFile, err := parseParameterMapFile("invalidFile.yaml")
35
36 assert.Nil(t, parameterMapFromFile)
37
38 // On Unix based systems, it is: `open invalidFile.yaml: no such file or directory`
39 // On Windows, it is `open invalidFile.yaml: The system cannot find the file specified.`
40 if runtime.GOOS == "windows" {
41 assert.EqualError(t, err, "open invalidFile.yaml: The system cannot find the file specified.")
42 } else {
43 assert.EqualError(t, err, "open invalidFile.yaml: no such file or directory")
44 }
45 })
46 t.Run("WithInvalidYAML", func(t *testing.T) {
47 t.Parallel()
48 tempDir := t.TempDir()
49 parameterFile, _ := os.CreateTemp(tempDir, "testParameterFile*.yaml")
50 _, _ = parameterFile.WriteString("region = \"bananas\"\ndisk = \"20\"\n")
51
52 parameterMapFromFile, err := parseParameterMapFile(parameterFile.Name())
53
54 assert.Nil(t, parameterMapFromFile)
55 assert.EqualError(t, err, "yaml: unmarshal errors:\n line 1: cannot unmarshal !!str `region ...` into map[string]interface {}")
56
57 removeTmpDirUntilSuccess(t, tempDir)
58 })
59}
60
61// Need this for Windows because of a known issue with Go:
62// https://github.com/golang/go/issues/52986

Callers

nothing calls this directly

Calls 7

parseParameterMapFileFunction · 0.85
removeTmpDirUntilSuccessFunction · 0.85
WriteStringMethod · 0.80
RunMethod · 0.65
TempDirMethod · 0.65
NameMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected