MCPcopy Create free account
hub / github.com/JordanCoin/codemap / TestAssessSetup

Function TestAssessSetup

config/config_test.go:261–341  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

259}
260
261func TestAssessSetup(t *testing.T) {
262 t.Run("missing config needs setup", func(t *testing.T) {
263 assessment := AssessSetup(t.TempDir())
264 if assessment.State != SetupStateMissing {
265 t.Fatalf("AssessSetup() state = %q, want %q", assessment.State, SetupStateMissing)
266 }
267 if !assessment.NeedsAttention() {
268 t.Fatal("expected missing config to need attention")
269 }
270 })
271
272 t.Run("malformed config needs setup", func(t *testing.T) {
273 root := t.TempDir()
274 codemapDir := filepath.Join(root, ".codemap")
275 if err := os.MkdirAll(codemapDir, 0o755); err != nil {
276 t.Fatal(err)
277 }
278 if err := os.WriteFile(filepath.Join(codemapDir, "config.json"), []byte("{bad json"), 0o644); err != nil {
279 t.Fatal(err)
280 }
281
282 assessment := AssessSetup(root)
283 if assessment.State != SetupStateMalformed {
284 t.Fatalf("AssessSetup() state = %q, want %q", assessment.State, SetupStateMalformed)
285 }
286 })
287
288 t.Run("blank config is empty", func(t *testing.T) {
289 root := t.TempDir()
290 codemapDir := filepath.Join(root, ".codemap")
291 if err := os.MkdirAll(codemapDir, 0o755); err != nil {
292 t.Fatal(err)
293 }
294 if err := os.WriteFile(filepath.Join(codemapDir, "config.json"), []byte(" \n\t "), 0o644); err != nil {
295 t.Fatal(err)
296 }
297
298 assessment := AssessSetup(root)
299 if assessment.State != SetupStateEmpty {
300 t.Fatalf("AssessSetup() state = %q, want %q", assessment.State, SetupStateEmpty)
301 }
302 })
303
304 t.Run("bootstrap config is boilerplate", func(t *testing.T) {
305 root := t.TempDir()
306 codemapDir := filepath.Join(root, ".codemap")
307 if err := os.MkdirAll(codemapDir, 0o755); err != nil {
308 t.Fatal(err)
309 }
310 if err := os.WriteFile(filepath.Join(codemapDir, "config.json"), []byte(`{"only":["rs","toml"]}`), 0o644); err != nil {
311 t.Fatal(err)
312 }
313
314 assessment := AssessSetup(root)
315 if assessment.State != SetupStateBoilerplate {
316 t.Fatalf("AssessSetup() state = %q, want %q", assessment.State, SetupStateBoilerplate)
317 }
318 if len(assessment.Reasons) == 0 || !strings.Contains(strings.ToLower(assessment.Reasons[0]), "bootstrap") {

Callers

nothing calls this directly

Calls 2

AssessSetupFunction · 0.85
NeedsAttentionMethod · 0.80

Tested by

no test coverage detected