(t *testing.T)
| 71 | } |
| 72 | |
| 73 | func TestSyncProcessConfiguration(t *testing.T) { |
| 74 | f, err := os.CreateTemp("", t.Name()) |
| 75 | assert.NoError(t, err) |
| 76 | assert.NotNil(t, f) |
| 77 | fmt.Println("-->tempfile", f.Name()) |
| 78 | |
| 79 | sto, err := store.NewBoltHold(f.Name()) |
| 80 | assert.NoError(t, err) |
| 81 | assert.NotNil(t, sto) |
| 82 | content := []byte("test") |
| 83 | |
| 84 | objMs := mock.NewServer(nil, mock.NewResponse(200, content)) |
| 85 | assert.NotNil(t, objMs) |
| 86 | sc := config.Config{} |
| 87 | err = utils.UnmarshalYAML(nil, &sc) |
| 88 | assert.NoError(t, err) |
| 89 | sc.Sync.Download.Address = objMs.URL |
| 90 | sc.Sync.Download.CA = "./testcert/ca.pem" |
| 91 | sc.Sync.Download.Key = "./testcert/client.key" |
| 92 | sc.Sync.Download.Cert = "./testcert/client.pem" |
| 93 | sc.Sync.Download.InsecureSkipVerify = true |
| 94 | ops, err := sc.Sync.Download.ToClientOptions() |
| 95 | assert.NoError(t, err) |
| 96 | syn := &sync{ |
| 97 | cfg: sc, |
| 98 | store: sto, |
| 99 | download: http.NewClient(ops), |
| 100 | log: log.With(log.Any("test", "sync")), |
| 101 | } |
| 102 | cfg := &specv1.Configuration{Name: "cfg", Version: "c1"} |
| 103 | err = syn.processConfiguration(cfg) |
| 104 | assert.NoError(t, err) |
| 105 | var expectedCfg specv1.Configuration |
| 106 | err = sto.Get(makeKey(specv1.KindConfiguration, "cfg", "c1"), &expectedCfg) |
| 107 | assert.NoError(t, err) |
| 108 | cfg.Name = "" |
| 109 | err = syn.processConfiguration(cfg) |
| 110 | assert.Error(t, err) |
| 111 | cfg.Name = "cfg" |
| 112 | |
| 113 | // object process |
| 114 | dir := t.TempDir() |
| 115 | syn.cfg.Sync.Download.Path = dir |
| 116 | file1 := filepath.Join(dir, "file1") |
| 117 | os.WriteFile(file1, content, 0644) |
| 118 | md5, err := utils.CalculateFileMD5(file1) |
| 119 | obj := specv1.ConfigurationObject{ |
| 120 | URL: objMs.URL, |
| 121 | MD5: md5, |
| 122 | } |
| 123 | objData, _ := json.Marshal(obj) |
| 124 | cfg.Data = map[string]string{ |
| 125 | "_object_file2": string(objData), |
| 126 | } |
| 127 | err = syn.processConfiguration(cfg) |
| 128 | assert.NoError(t, err) |
| 129 | hostPath := filepath.Join(dir, "cfg", "c1") |
| 130 | data, err := os.ReadFile(filepath.Join(hostPath, "file2")) |
nothing calls this directly
no test coverage detected