fuzzyworld

template / ci-testing / files / extras_test.go

Branch ci-testing · default branch · all branches

extras_test.go

Blame: the commit that last changed each line · file · history

55c36f6a 2022-10-05 Pavel Safronov1package main
2
3import (
4 "os"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8 "gopkg.in/yaml.v3"
9)
10
11func TestExtras(t *testing.T) {
12 // setup code
13 extras := map[string]string{
14 "version": "1",
15 "id": "123",
16 "customer": "abc",
17 }
18
ae89a42a 2022-11-02 Pavel Safronov19 file, err := os.CreateTemp("", "extras.yaml")
20 if err != nil {
21 t.Error("Error creating temp file: ", err)
55c36f6a 2022-10-05 Pavel Safronov22 }
23
24 // cleanup code
25 deleteFile := func() {
26 os.Remove(file.Name())
27 }
28 defer deleteFile()
29
30 // write extras to file
31 encoder := yaml.NewEncoder(file)
ae89a42a 2022-11-02 Pavel Safronov32 err = encoder.Encode(extras)
33 if err != nil {
34 t.Error("Error encoding extras: ", err)
55c36f6a 2022-10-05 Pavel Safronov35 }
36
37 // close file
ae89a42a 2022-11-02 Pavel Safronov38 err = file.Close()
39 if err != nil {
40 t.Error("Error closing file: ", err)
55c36f6a 2022-10-05 Pavel Safronov41 }
42
43 // file name
44 fileName := file.Name()
45
46 // happy path
ae89a42a 2022-11-02 Pavel Safronov47 loadedExtras, err := loadExtras(fileName)
48 if err != nil {
49 t.Error("Error loading extras: ", err)
55c36f6a 2022-10-05 Pavel Safronov50 }
51 assert.Equal(t, extras, loadedExtras)
05f9e8ef 2022-10-06 Pavel Safronov52
53 // test path errors
886f7fa2 2022-11-02 Pavel Safronov54 _, err = loadExtras("non-existent-file.yaml")
55 assert.NotNil(t, err, "Expected error loading non-existent file")
05f9e8ef 2022-10-06 Pavel Safronov56
75a066b2 2022-11-16 Pavel Safronov57 err = os.WriteFile(file.Name(), []byte("invalid yaml"), 0644)
58 assert.Nil(t, err, "Error writing invalid yaml file")
ae89a42a 2022-11-02 Pavel Safronov59 _, err = loadExtras(fileName)
60 assert.NotNil(t, err, "Expected to fail to parse extras, but succeeded")
55c36f6a 2022-10-05 Pavel Safronov61}