Skip to content

Commit 0e98d75

Browse files
committed
Test quickstart sorting
1 parent 2b685a9 commit 0e98d75

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

pkg/routes/quickstarts_test.go

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ import (
1616
var quickstart models.Quickstart
1717
var taggedQuickstart models.Quickstart
1818
var settingsQuickstart models.Quickstart
19-
var rhelQuickstart models.Quickstart
19+
var rhelQuickstartA models.Quickstart
20+
var rhelQuickstartB models.Quickstart
2021
var rbacQuickstart models.Quickstart
2122
var rhelBudleTag models.Tag
2223
var settingsBundleTag models.Tag
@@ -77,6 +78,10 @@ func setupTags() {
7778
database.DB.Create(&unusedTag)
7879
}
7980

81+
func linkWithPriority(quickstart *models.Quickstart, tag *models.Tag, priority int) {
82+
database.DB.Create(&models.QuickstartTag{QuickstartID: quickstart.ID, TagID: tag.ID, Priority: &priority})
83+
}
84+
8085
func setupTaggedQuickstarts() {
8186
taggedQuickstart.Name = "tagged-quickstart"
8287
taggedQuickstart.Content = []byte(`{"tags": "all-tags"}`)
@@ -92,12 +97,17 @@ func setupTaggedQuickstarts() {
9297
database.DB.Model(&settingsQuickstart).Association("Tags").Append(&settingsBundleTag)
9398
database.DB.Save(&settingsQuickstart)
9499

95-
rhelQuickstart.Name = "rhel-quickstart"
96-
rhelQuickstart.Content = []byte(`{"tags": "rhel"}`)
100+
rhelQuickstartA.Name = "rhel-quickstart-a"
101+
rhelQuickstartA.Content = []byte(`{"tags": "rhel"}`)
102+
103+
database.DB.Create(&rhelQuickstartA)
104+
linkWithPriority(&rhelQuickstartA, &rhelBudleTag, 1100)
97105

98-
database.DB.Create(&rhelQuickstart)
99-
database.DB.Model(&rhelQuickstart).Association("Tags").Append(&rhelBudleTag)
100-
database.DB.Save(&rhelQuickstart)
106+
rhelQuickstartB.Name = "rhel-quickstart-b"
107+
rhelQuickstartB.Content = []byte(`{"tags": "rhel"}`)
108+
109+
database.DB.Create(&rhelQuickstartB)
110+
linkWithPriority(&rhelQuickstartB, &rhelBudleTag, 900)
101111

102112
rbacQuickstart.Name = "rbac-quickstart"
103113
rbacQuickstart.Content = []byte(`{"tags": "rbac"}`)
@@ -121,7 +131,7 @@ func TestGetAll(t *testing.T) {
121131
var payload *responsePayload
122132
json.NewDecoder(response.Body).Decode(&payload)
123133
assert.Equal(t, 200, response.Code)
124-
assert.Equal(t, 3, len(payload.Data))
134+
assert.Equal(t, 4, len(payload.Data))
125135
})
126136

127137
t.Run("should get all quickstarts with 'rhel' bundle tag", func(t *testing.T) {
@@ -132,7 +142,12 @@ func TestGetAll(t *testing.T) {
132142
var payload *responsePayload
133143
json.NewDecoder(response.Body).Decode(&payload)
134144
assert.Equal(t, 200, response.Code)
135-
assert.Equal(t, 2, len(payload.Data))
145+
assert.Equal(t, 3, len(payload.Data))
146+
147+
// This is a request for a single bundle, so the quickstarts should be sorted in priority order.
148+
assert.Equal(t, "rhel-quickstart-b", payload.Data[0].Name) // Priority 900
149+
assert.Equal(t, "tagged-quickstart", payload.Data[1].Name) // Default priority (1000)
150+
assert.Equal(t, "rhel-quickstart-a", payload.Data[2].Name) // Priority 1100
136151
})
137152

138153
t.Run("should get all quickstarts with 'settings' bundle tag", func(t *testing.T) {
@@ -169,7 +184,7 @@ func TestGetAll(t *testing.T) {
169184
var payload *responsePayload
170185
json.NewDecoder(response.Body).Decode(&payload)
171186
assert.Equal(t, 200, response.Code)
172-
assert.Equal(t, 5, len(payload.Data))
187+
assert.Equal(t, 6, len(payload.Data))
173188
})
174189

175190
t.Run("should get quikctart by ID", func(t *testing.T) {
@@ -203,18 +218,18 @@ func TestGetAll(t *testing.T) {
203218
var payload *responsePayload
204219
json.NewDecoder(response.Body).Decode(&payload)
205220
assert.Equal(t, 200, response.Code)
206-
assert.Equal(t, 5, len(payload.Data))
221+
assert.Equal(t, 6, len(payload.Data))
207222
})
208223

209-
t.Run("should offset response by 2 and recover 3 records", func(t *testing.T) {
224+
t.Run("should offset response by 2 and recover 4 records", func(t *testing.T) {
210225
request, _ := http.NewRequest(http.MethodGet, "/?offset=2", nil)
211226
response := httptest.NewRecorder()
212227
router.ServeHTTP(response, request)
213228

214229
var payload *responsePayload
215230
json.NewDecoder(response.Body).Decode(&payload)
216231
assert.Equal(t, 200, response.Code)
217-
assert.Equal(t, 3, len(payload.Data))
232+
assert.Equal(t, 4, len(payload.Data))
218233
})
219234

220235
t.Run("should limit response by 2 offset response by 2 and recover 2 records", func(t *testing.T) {

0 commit comments

Comments
 (0)