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}