/
statuscrud_file_test.go
80 lines (71 loc) · 2.57 KB
/
statuscrud_file_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package main
import (
"os"
"testing"
"github.com/kiriappeee/slack-status-updater-core"
)
func TestStatusesCanBeListed(t *testing.T) {
fileSetUp()
var sci ssucore.StatusCRUDInterface
homeDirectory := os.Getenv("HOME")
sci = statusCRUDFileImplementation(homeDirectory + "/.config/ssuclitest/statuses.yaml")
statuses := ssucore.GetStatuses(sci)
if len(statuses) != 4 {
t.Fatalf("Did not receive the expected statuses")
}
fileTearDown()
}
func TestStatusCanBeRetrievedByKey(t *testing.T) {
fileSetUp()
var sci ssucore.StatusCRUDInterface
homeDirectory := os.Getenv("HOME")
sci = statusCRUDFileImplementation(homeDirectory + "/.config/ssuclitest/statuses.yaml")
status, err := ssucore.GetStatusByKey("resting", sci)
if err != nil {
t.Fatalf("Received an error where non was expected. Received error was %s", err.Error())
}
if status.StatusName != "resting"{
t.Fatalf("Did not received the expected status. Received %s", status)
}
status, err = ssucore.GetStatusByKey("notresting", sci)
if err == nil {
t.Fatalf("Did not receive an error when expecting one")
}
expectedError := "Could not find the requested status"
receivedError := err.Error()
if expectedError != receivedError {
t.Fatalf("Did not receive the expected error. Received %s. Expected %s", receivedError, expectedError)
}
fileTearDown()
}
func TestStatusCanBeAdded(t *testing.T) {
fileSetUp()
var sci ssucore.StatusCRUDInterface
homeDirectory := os.Getenv("HOME")
sci = statusCRUDFileImplementation(homeDirectory + "/.config/ssuclitest/statuses.yaml")
goodStatusToAdd := ssucore.Status{"mynewstatus", "emoji", "Status text"}
err := ssucore.AddNewStatus(goodStatusToAdd, sci)
if err != nil {
t.Fatalf("Received an error where non was expected. Received error was: %s", err.Error())
}
status, _ := ssucore.GetStatusByKey("mynewstatus", sci)
if status.StatusName != "mynewstatus" && status.Emoji != "emoji" && status.StatusText != "Status text" {
t.Fatalf("Status retrieved after adding did not match expected values. Received %s", status)
}
fileTearDown()
}
func TestStatusCanBeDeleted(t *testing.T) {
fileSetUp()
var sci ssucore.StatusCRUDInterface
homeDirectory := os.Getenv("HOME")
sci = statusCRUDFileImplementation(homeDirectory + "/.config/ssuclitest/statuses.yaml")
err := ssucore.DeleteStatusByName("resting", sci)
if err != nil {
t.Fatalf("Received an error where non was expected. Received error was: %s", err.Error())
}
_, err = ssucore.GetStatusByKey("resting", sci)
if err == nil {
t.Fatalf("Received no error. Was expecting: Could not find the requested status")
}
fileTearDown()
}