github.com/tonkpils/cli@v1.6.2/assignment_test.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "os" 7 "path/filepath" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestSavingAssignment(t *testing.T) { 14 tmpDir, err := ioutil.TempDir("", "") 15 assert.NoError(t, err) 16 17 prepareFixture(t, fmt.Sprintf("%s/ruby/bob/stub.rb", tmpDir), "Existing stub") 18 19 assignment := Assignment{ 20 Track: "ruby", 21 Slug: "bob", 22 Files: map[string]string{ 23 "bob_test.rb": "Tests text", 24 "README.md": "Readme text", 25 "path/to/file.rb": "File text", 26 "stub.rb": "New version of stub", 27 }, 28 } 29 30 err = SaveAssignment(tmpDir, assignment) 31 assert.NoError(t, err) 32 33 readme, err := ioutil.ReadFile(tmpDir + "/ruby/bob/README.md") 34 assert.NoError(t, err) 35 assert.Equal(t, string(readme), "Readme text") 36 37 tests, err := ioutil.ReadFile(tmpDir + "/ruby/bob/bob_test.rb") 38 assert.NoError(t, err) 39 assert.Equal(t, string(tests), "Tests text") 40 41 fileInDir, err := ioutil.ReadFile(tmpDir + "/ruby/bob/path/to/file.rb") 42 assert.NoError(t, err) 43 assert.Equal(t, string(fileInDir), "File text") 44 45 stubFile, err := ioutil.ReadFile(tmpDir + "/ruby/bob/stub.rb") 46 assert.NoError(t, err) 47 assert.Equal(t, string(stubFile), "Existing stub") 48 } 49 50 func prepareFixture(t *testing.T, fixture, s string) { 51 err := os.MkdirAll(filepath.Dir(fixture), 0755) 52 assert.NoError(t, err) 53 54 err = ioutil.WriteFile(fixture, []byte(s), 0644) 55 assert.NoError(t, err) 56 57 // ensure fixture is set up correctly 58 fixtureContents, err := ioutil.ReadFile(fixture) 59 assert.NoError(t, err) 60 assert.Equal(t, string(fixtureContents), s) 61 }