MCPcopy
hub / github.com/baetyl/baetyl / TestSyncProcessConfiguration

Function TestSyncProcessConfiguration

sync/desire_test.go:73–139  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

71}
72
73func 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"))

Callers

nothing calls this directly

Calls 4

processConfigurationMethod · 0.95
NewBoltHoldFunction · 0.92
makeKeyFunction · 0.70
GetMethod · 0.65

Tested by

no test coverage detected