package utils_test import ( "github.com/Slug-Boi/cocommit/src_code/go_src/cmd/utils" "os" "testing" ) const author_data = `syntax for the test file te|testing|TestUser|test@test.test|ex ti|testtest|UserName2|testing@user.io;;gr1` var envVar = os.Getenv("author_file") func setup() { // setup test data os.WriteFile("author_file_test", []byte(author_data), 0644) os.Setenv("author_file", "author_file_test") } func teardown() { // remove test data os.Remove("author_file_test") os.Setenv("author_file", envVar) } // Author tests BEGIN func Test_FindAuthorFile(t* testing.T) { setup() defer teardown() // Test Find_authorfile authorfile := utils.Find_authorfile() if authorfile != "author_file_test" { t.Errorf("Find_authorfile() = %v; want authors_file_test", authorfile) } } func Test_DeleteAuthor(t *testing.T) { setup() defer teardown() // Test DeleteOneAuthor og_bytes, err := os.ReadFile("author_file_test") if err != nil { t.Errorf("Error reading file: %v", err) } utils.DeleteOneAuthor("te") deleted_bytes, err := os.ReadFile("author_file_test") if err != nil { t.Errorf("Error reading file: %v", err) } if string(og_bytes) == string(deleted_bytes) { t.Errorf("DeleteOneAuthor() did not delete author") } } // Author tests END // User tests BEGIN func Test_DefineUsers(t *testing.T) { setup() defer teardown() // Test Define_users utils.Define_users("author_file_test") if len(utils.Users) != 4 { t.Errorf("Define_users() = %v; want 4", len(utils.Users)) } } func Test_RemoveUser(t *testing.T) { setup() defer teardown() // Test RemoveUser utils.Define_users("author_file_test") utils.RemoveUser("te") if len(utils.Users) != 3 { t.Errorf("RemoveUser() = %v; want 3", len(utils.Users)) } } // User tests END // Commit tests BEGIN func Test_Commit(t* testing.T) { setup() defer teardown() utils.Define_users("author_file_test") // Test Commit authors := []string{"te"} message := "Test commit message" commit := utils.Commit(message, authors) if commit != "Test commit message\n\nCo-authored-by: TestUser " { t.Errorf("Commit() = %v; want Test commit message\n", commit) } } // Commit tests END