@@ -101,3 +101,43 @@ func TestRustHasTrailingDashes(t *testing.T) {
101101
102102 assert .True (t , strings .HasSuffix (cmd , "--" ), "rust's test command should have trailing dashes" )
103103}
104+
105+ func TestIdrisUsesExerciseSlug (t * testing.T ) {
106+ currentDir , err := os .Getwd ()
107+ assert .NoError (t , err )
108+
109+ tmpDir , err := os .MkdirTemp ("" , "solution" )
110+ assert .NoError (t , err )
111+ defer os .RemoveAll (tmpDir )
112+
113+ em := & ExerciseMetadata {
114+ Track : "idris" ,
115+ ExerciseSlug : "bogus-exercise" ,
116+ ID : "abc" ,
117+ URL : "http://example.com" ,
118+ Handle : "alice" ,
119+ IsRequester : true ,
120+ Dir : tmpDir ,
121+ }
122+ err = em .Write (tmpDir )
123+ assert .NoError (t , err )
124+
125+ defer os .Chdir (currentDir )
126+ err = os .Chdir (tmpDir )
127+ assert .NoError (t , err )
128+
129+ exercismDir := filepath .Join ("." , ".exercism" )
130+ f , err := os .Create (filepath .Join (exercismDir , "config.json" ))
131+ assert .NoError (t , err )
132+ defer f .Close ()
133+
134+ _ , err = f .WriteString (`{ "files": { "solution": [ "src/BogusExercise.idr" ], "test": [ "test/src/Main.idr" ] } }` )
135+ assert .NoError (t , err )
136+
137+ testConfig , ok := TestConfigurations ["idris" ]
138+ assert .True (t , ok , "unexpectedly unable to find idris test config" )
139+
140+ cmd , err := testConfig .GetTestCommand ()
141+ assert .NoError (t , err )
142+ assert .Equal (t , cmd , "pack test bogus-exercise" )
143+ }
0 commit comments