|
| 1 | +package main |
| 2 | + |
| 3 | +import ( |
| 4 | + "io/ioutil" |
| 5 | + "os" |
| 6 | + "testing" |
| 7 | + |
| 8 | + "github.com/stretchr/testify/assert" |
| 9 | + "github.com/stretchr/testify/require" |
| 10 | + "gopkg.in/yaml.v2" |
| 11 | +) |
| 12 | + |
| 13 | +func TestNewConfig(t *testing.T) { |
| 14 | + cfg := Config{ |
| 15 | + TestCrawlerPaths: []string{"a", "b"}, |
| 16 | + TestCrawlerOutputMode: "stdout", |
| 17 | + TestCrawlerOutputDir: "output", |
| 18 | + TestCrawlerLanguage: "go", |
| 19 | + TestCrawlerIndentJSON: true, |
| 20 | + TestCrawlerIgnore: []string{"extern"}, |
| 21 | + |
| 22 | + BehaviorGenPaths: []string{"c", "d"}, |
| 23 | + BehaviorGenIgnore: []string{".git"}, |
| 24 | + BehaviorGenOutputDir: "output/catalogue", |
| 25 | + } |
| 26 | + |
| 27 | + f, err := os.CreateTemp("", "config-test.yml") |
| 28 | + require.Nil(t, err) |
| 29 | + defer f.Close() |
| 30 | + defer os.Remove(f.Name()) |
| 31 | + |
| 32 | + configBytes, err := yaml.Marshal(&cfg) |
| 33 | + assert.NoError(t, err) |
| 34 | + |
| 35 | + assert.NoError(t, ioutil.WriteFile(f.Name(), configBytes, 0644)) |
| 36 | + |
| 37 | + var configFromFile Config |
| 38 | + fileContent, err := ioutil.ReadFile(f.Name()) |
| 39 | + assert.NoError(t, err) |
| 40 | + |
| 41 | + err = yaml.Unmarshal(fileContent, &configFromFile) |
| 42 | + assert.NoError(t, err) |
| 43 | + |
| 44 | + assert.Equal(t, cfg, configFromFile) |
| 45 | +} |
0 commit comments