main
1package domain
2
3import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7)
8
9func TestSparkle(t *testing.T) {
10 t.Run("NewSparkle", func(t *testing.T) {
11 t.Run("with a valid body", func(t *testing.T) {
12 sparkle, err := NewSparkle("@tanuki for helping me with my homework!")
13
14 assert.Nil(t, err)
15 if err != nil {
16 assert.Equal(t, "@tanuki", sparkle.Sparklee)
17 assert.Equal(t, "for helping me with my homework!", sparkle.Reason)
18 }
19 })
20
21 t.Run("with an empty body", func(t *testing.T) {
22 sparkle, err := NewSparkle("")
23
24 assert.Nil(t, sparkle)
25 assert.NotNil(t, err)
26 if err != nil {
27 assert.Equal(t, "Sparkle is empty", err.Error())
28 }
29 })
30
31 t.Run("without a reason", func(t *testing.T) {
32 sparkle, err := NewSparkle("@tanuki")
33
34 assert.Nil(t, sparkle)
35 assert.NotNil(t, err)
36 if err != nil {
37 assert.Equal(t, "Sparkle is invalid", err.Error())
38 }
39 })
40
41 t.Run("without a username", func(t *testing.T) {
42 sparkle, err := NewSparkle("for helping me with my homework")
43
44 assert.Nil(t, sparkle)
45 assert.NotNil(t, err)
46 if err != nil {
47 assert.Equal(t, "Sparkle is invalid", err.Error())
48 }
49 })
50 })
51}