MCPcopy Create free account
hub / github.com/exercism/cli / TestWorkspaceExercises

Function TestWorkspaceExercises

workspace/workspace_test.go:51–88  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

49}
50
51func TestWorkspaceExercises(t *testing.T) {
52 tmpDir, err := os.MkdirTemp("", "walk-with-metadata")
53 defer os.RemoveAll(tmpDir)
54 assert.NoError(t, err)
55
56 a1 := filepath.Join(tmpDir, "track-a", "exercise-one")
57 a2 := filepath.Join(tmpDir, "track-a", "exercise-two") // no metadata
58 b1 := filepath.Join(tmpDir, "track-b", "exercise-one")
59 b2 := filepath.Join(tmpDir, "track-b", "exercise-two")
60
61 for _, path := range []string{a1, a2, b1, b2} {
62 metadataAbsoluteFilepath := filepath.Join(path, metadataFilepath)
63 err := os.MkdirAll(filepath.Dir(metadataAbsoluteFilepath), os.FileMode(0755))
64 assert.NoError(t, err)
65
66 if path != a2 {
67 err = os.WriteFile(metadataAbsoluteFilepath, []byte{}, os.FileMode(0600))
68 assert.NoError(t, err)
69 }
70 }
71
72 ws, err := New(tmpDir)
73 assert.NoError(t, err)
74
75 exercises, err := ws.Exercises()
76 assert.NoError(t, err)
77 if assert.Equal(t, 3, len(exercises)) {
78 paths := make([]string, len(exercises))
79 for i, e := range exercises {
80 paths[i] = e.Path()
81 }
82
83 sort.Strings(paths)
84 assert.Equal(t, paths[0], "track-a/exercise-one")
85 assert.Equal(t, paths[1], "track-b/exercise-one")
86 assert.Equal(t, paths[2], "track-b/exercise-two")
87 }
88}
89
90func TestExerciseDir(t *testing.T) {
91 _, cwd, _, _ := runtime.Caller(0)

Callers

nothing calls this directly

Calls 3

ExercisesMethod · 0.80
NewFunction · 0.70
PathMethod · 0.45

Tested by

no test coverage detected