Skip to content

Commit 816bf7e

Browse files
committed
Add record tests
1 parent 13cdbfd commit 816bf7e

File tree

2 files changed

+57
-12
lines changed

2 files changed

+57
-12
lines changed

internal/record/record.go

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import (
66
"os"
77
"path/filepath"
88

9-
"github.com/goccy/go-yaml"
10-
119
"github.com/DanWlker/remind/internal/config"
1210
"github.com/DanWlker/remind/internal/data"
1311
i_error "github.com/DanWlker/remind/internal/error"
@@ -87,29 +85,38 @@ func SetFileContents(items []RecordEntity) (err error) {
8785
}
8886
}()
8987

90-
enc := yaml.NewEncoder(f)
91-
if err := enc.Encode(items); err != nil {
92-
return fmt.Errorf("enc.Encode: %w", err)
88+
err = shared.FWriteStructToYaml[RecordEntity](f, items)
89+
if err != nil {
90+
return fmt.Errorf("shared.FWriteStructToYaml: %w", err)
9391
}
9492

9593
return nil
9694
}
9795

96+
func FGetRecordIdentityWithIdentifier(items []RecordEntity, identifier string) (RecordEntity, error) {
97+
for _, record := range items {
98+
if record.Path == identifier {
99+
return record, nil
100+
}
101+
}
102+
103+
return RecordEntity{}, i_error.RecordDoesNotExistError{
104+
ID: identifier,
105+
}
106+
}
107+
98108
func GetRecordEntityWithIdentifier(homeRemovedPath string) (RecordEntity, error) {
99109
allRecords, err := GetFileContents()
100110
if err != nil {
101111
return RecordEntity{}, fmt.Errorf("GetFileContents: %w", err)
102112
}
103113

104-
for _, record := range allRecords {
105-
if record.Path == homeRemovedPath {
106-
return record, nil
107-
}
114+
res, err := FGetRecordIdentityWithIdentifier(allRecords, homeRemovedPath)
115+
if err != nil {
116+
return RecordEntity{}, fmt.Errorf("FGetRecordIdentityWithIdentifier: %w", err)
108117
}
109118

110-
return RecordEntity{}, i_error.RecordDoesNotExistError{
111-
ID: homeRemovedPath,
112-
}
119+
return res, nil
113120
}
114121

115122
func CreateNewRecord(pathIdentifier string) (RecordEntity, error) {

internal/record/record_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package record
2+
3+
import (
4+
"errors"
5+
"testing"
6+
7+
i_error "github.com/DanWlker/remind/internal/error"
8+
)
9+
10+
func TestFGetRecordIdentityWithIdentifier(t *testing.T) {
11+
t.Run("Functionality test", func(t *testing.T) {
12+
ex := RecordEntity{"up", "something"}
13+
items := []RecordEntity{
14+
{"never", "gonna"},
15+
{"give", "you"},
16+
ex,
17+
}
18+
19+
got, err := FGetRecordIdentityWithIdentifier(items, "something")
20+
if err != nil {
21+
t.Errorf("Expectad no errors, got %v", err)
22+
}
23+
24+
if got != ex {
25+
t.Errorf("Wrong record found, expected %v, got %v", ex, got)
26+
}
27+
})
28+
29+
t.Run("Test record does not exist", func(t *testing.T) {
30+
var items []RecordEntity
31+
var ex i_error.RecordDoesNotExistError
32+
33+
_, err := FGetRecordIdentityWithIdentifier(items, "something")
34+
if !errors.As(err, &ex) {
35+
t.Errorf("Should return %v, got %v", ex, err)
36+
}
37+
})
38+
}

0 commit comments

Comments
 (0)