Skip to content

Commit 4ca8f47

Browse files
committed
chore: add guide tests
1 parent 7c482f4 commit 4ca8f47

File tree

5 files changed

+142
-7
lines changed

5 files changed

+142
-7
lines changed

redis/redis.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,7 @@ func GetVersionUploadState(versionID string) (*generated.CreateVersionResponse,
137137

138138
return data.Data, nil
139139
}
140+
141+
func FlushRedis() {
142+
client.FlushDB()
143+
}

tests/announcements_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func TestAnnouncements(t *testing.T) {
2121
ctx, client, stop := setup()
2222
defer stop()
2323

24-
token, err := makeUser(ctx)
24+
token, _, err := makeUser(ctx)
2525
testza.AssertNoError(t, err)
2626

2727
// Run Twice to detect any cache issues

tests/bootstrap_versions_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func TestBootstrapVersions(t *testing.T) {
2222
ctx, client, stop := setup()
2323
defer stop()
2424

25-
token, err := makeUser(ctx)
25+
token, _, err := makeUser(ctx)
2626
testza.AssertNoError(t, err)
2727

2828
// Run Twice to detect any cache issues

tests/guides_test.go

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
package tests
2+
3+
import (
4+
"testing"
5+
6+
"github.com/MarvinJWendt/testza"
7+
8+
"github.com/satisfactorymodding/smr-api/config"
9+
"github.com/satisfactorymodding/smr-api/db/postgres"
10+
"github.com/satisfactorymodding/smr-api/generated"
11+
"github.com/satisfactorymodding/smr-api/migrations"
12+
)
13+
14+
func init() {
15+
migrations.SetMigrationDir("../migrations")
16+
config.SetConfigDir("../")
17+
postgres.EnableDebug()
18+
}
19+
20+
func TestGuides(t *testing.T) {
21+
ctx, client, stop := setup()
22+
defer stop()
23+
24+
token, userId, err := makeUser(ctx)
25+
testza.AssertNoError(t, err)
26+
27+
// Run Twice to detect any cache issues
28+
for i := 0; i < 2; i++ {
29+
// Create
30+
createGuide := authRequest(`mutation {
31+
createGuide(guide: {
32+
name: "Hello World",
33+
short_description: "Short description about the guide",
34+
guide: "The full guide text goes here."
35+
}) {
36+
id
37+
}
38+
}`, token)
39+
40+
var createGuideResponse struct {
41+
CreateGuide generated.Guide
42+
}
43+
testza.AssertNoError(t, client.Run(ctx, createGuide, &createGuideResponse))
44+
testza.AssertNotEqual(t, "", createGuideResponse.CreateGuide.ID)
45+
46+
// Query One
47+
queryGuide := authRequest(`query ($id: GuideID!) {
48+
getGuide(guideId: $id) {
49+
id
50+
name
51+
short_description
52+
guide
53+
user {
54+
id
55+
}
56+
}
57+
}`, token)
58+
queryGuide.Var("id", createGuideResponse.CreateGuide.ID)
59+
60+
var queryGuideResponse struct {
61+
GetGuide generated.Guide
62+
}
63+
testza.AssertNoError(t, client.Run(ctx, queryGuide, &queryGuideResponse))
64+
testza.AssertEqual(t, createGuideResponse.CreateGuide.ID, queryGuideResponse.GetGuide.ID)
65+
testza.AssertEqual(t, "Hello World", queryGuideResponse.GetGuide.Name)
66+
testza.AssertEqual(t, "Short description about the guide", queryGuideResponse.GetGuide.ShortDescription)
67+
testza.AssertEqual(t, "The full guide text goes here.", queryGuideResponse.GetGuide.Guide)
68+
testza.AssertEqual(t, userId, queryGuideResponse.GetGuide.User.ID)
69+
70+
// Update
71+
updateGuide := authRequest(`mutation ($id: GuideID!) {
72+
updateGuide(
73+
guideId: $id,
74+
guide: {
75+
name: "Foo Bar"
76+
}
77+
) {
78+
id
79+
}
80+
}`, token)
81+
updateGuide.Var("id", createGuideResponse.CreateGuide.ID)
82+
83+
var updateGuideResponse struct {
84+
UpdateGuide generated.Guide
85+
}
86+
testza.AssertNoError(t, client.Run(ctx, updateGuide, &updateGuideResponse))
87+
88+
// Query Many
89+
queryGuides := authRequest(`query {
90+
getGuides {
91+
count
92+
guides {
93+
id
94+
name
95+
short_description
96+
guide
97+
user {
98+
id
99+
}
100+
}
101+
}
102+
}`, token)
103+
104+
var queryGuidesResponse struct {
105+
GetGuides generated.GetGuides
106+
}
107+
testza.AssertNoError(t, client.Run(ctx, queryGuides, &queryGuidesResponse))
108+
testza.AssertEqual(t, 1, queryGuidesResponse.GetGuides.Count)
109+
testza.AssertEqual(t, 1, len(queryGuidesResponse.GetGuides.Guides))
110+
testza.AssertEqual(t, createGuideResponse.CreateGuide.ID, queryGuidesResponse.GetGuides.Guides[0].ID)
111+
testza.AssertEqual(t, "Foo Bar", queryGuidesResponse.GetGuides.Guides[0].Name)
112+
testza.AssertEqual(t, "Short description about the guide", queryGuidesResponse.GetGuides.Guides[0].ShortDescription)
113+
testza.AssertEqual(t, "The full guide text goes here.", queryGuidesResponse.GetGuides.Guides[0].Guide)
114+
testza.AssertEqual(t, userId, queryGuidesResponse.GetGuides.Guides[0].User.ID)
115+
116+
// Delete
117+
deleteGuide := authRequest(`mutation ($id: GuideID!) {
118+
deleteGuide(guideId: $id)
119+
}`, token)
120+
deleteGuide.Var("id", createGuideResponse.CreateGuide.ID)
121+
122+
var deleteGuideResponse struct {
123+
DeleteGuide bool
124+
}
125+
testza.AssertNoError(t, client.Run(ctx, deleteGuide, &deleteGuideResponse))
126+
testza.AssertTrue(t, deleteGuideResponse.DeleteGuide)
127+
}
128+
}

tests/utils.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/satisfactorymodding/smr-api"
1111
"github.com/satisfactorymodding/smr-api/auth"
1212
"github.com/satisfactorymodding/smr-api/db/postgres"
13+
"github.com/satisfactorymodding/smr-api/redis"
1314
"github.com/satisfactorymodding/smr-api/util"
1415
)
1516

@@ -18,6 +19,8 @@ func setup() (context.Context, *graphql.Client, func()) {
1819

1920
ctx := smr.Initialize(context.Background())
2021

22+
redis.FlushRedis()
23+
2124
var out []struct {
2225
TableName string
2326
}
@@ -56,7 +59,7 @@ func setup() (context.Context, *graphql.Client, func()) {
5659
}
5760
}
5861

59-
func makeUser(ctx context.Context) (string, error) {
62+
func makeUser(ctx context.Context) (string, string, error) {
6063
user := postgres.User{
6164
SMRModel: postgres.SMRModel{
6265
ID: util.GenerateUniqueID(),
@@ -67,7 +70,7 @@ func makeUser(ctx context.Context) (string, error) {
6770

6871
err := postgres.DBCtx(ctx).Create(&user).Error
6972
if err != nil {
70-
return "", err
73+
return "", "", err
7174
}
7275

7376
log.Info().Str("id", user.ID).Msg("created fake test_user")
@@ -79,7 +82,7 @@ func makeUser(ctx context.Context) (string, error) {
7982

8083
err = postgres.DBCtx(ctx).Create(&userGroup).Error
8184
if err != nil {
82-
return "", err
85+
return "", "", err
8386
}
8487

8588
log.Info().Msg("created user admin group")
@@ -94,12 +97,12 @@ func makeUser(ctx context.Context) (string, error) {
9497

9598
err = postgres.DBCtx(ctx).Create(&session).Error
9699
if err != nil {
97-
return "", err
100+
return "", "", err
98101
}
99102

100103
log.Info().Str("token", session.Token).Msg("created fake user session")
101104

102-
return session.Token, nil
105+
return session.Token, user.ID, nil
103106
}
104107

105108
func authRequest(q string, token string) *graphql.Request {

0 commit comments

Comments
 (0)