@@ -16,7 +16,8 @@ import (
16
16
var quickstart models.Quickstart
17
17
var taggedQuickstart models.Quickstart
18
18
var settingsQuickstart models.Quickstart
19
- var rhelQuickstart models.Quickstart
19
+ var rhelQuickstartA models.Quickstart
20
+ var rhelQuickstartB models.Quickstart
20
21
var rbacQuickstart models.Quickstart
21
22
var rhelBudleTag models.Tag
22
23
var settingsBundleTag models.Tag
@@ -77,6 +78,10 @@ func setupTags() {
77
78
database .DB .Create (& unusedTag )
78
79
}
79
80
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
+
80
85
func setupTaggedQuickstarts () {
81
86
taggedQuickstart .Name = "tagged-quickstart"
82
87
taggedQuickstart .Content = []byte (`{"tags": "all-tags"}` )
@@ -92,12 +97,17 @@ func setupTaggedQuickstarts() {
92
97
database .DB .Model (& settingsQuickstart ).Association ("Tags" ).Append (& settingsBundleTag )
93
98
database .DB .Save (& settingsQuickstart )
94
99
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 )
97
105
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 )
101
111
102
112
rbacQuickstart .Name = "rbac-quickstart"
103
113
rbacQuickstart .Content = []byte (`{"tags": "rbac"}` )
@@ -121,7 +131,7 @@ func TestGetAll(t *testing.T) {
121
131
var payload * responsePayload
122
132
json .NewDecoder (response .Body ).Decode (& payload )
123
133
assert .Equal (t , 200 , response .Code )
124
- assert .Equal (t , 3 , len (payload .Data ))
134
+ assert .Equal (t , 4 , len (payload .Data ))
125
135
})
126
136
127
137
t .Run ("should get all quickstarts with 'rhel' bundle tag" , func (t * testing.T ) {
@@ -132,7 +142,12 @@ func TestGetAll(t *testing.T) {
132
142
var payload * responsePayload
133
143
json .NewDecoder (response .Body ).Decode (& payload )
134
144
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
136
151
})
137
152
138
153
t .Run ("should get all quickstarts with 'settings' bundle tag" , func (t * testing.T ) {
@@ -169,7 +184,7 @@ func TestGetAll(t *testing.T) {
169
184
var payload * responsePayload
170
185
json .NewDecoder (response .Body ).Decode (& payload )
171
186
assert .Equal (t , 200 , response .Code )
172
- assert .Equal (t , 5 , len (payload .Data ))
187
+ assert .Equal (t , 6 , len (payload .Data ))
173
188
})
174
189
175
190
t .Run ("should get quikctart by ID" , func (t * testing.T ) {
@@ -203,18 +218,18 @@ func TestGetAll(t *testing.T) {
203
218
var payload * responsePayload
204
219
json .NewDecoder (response .Body ).Decode (& payload )
205
220
assert .Equal (t , 200 , response .Code )
206
- assert .Equal (t , 5 , len (payload .Data ))
221
+ assert .Equal (t , 6 , len (payload .Data ))
207
222
})
208
223
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 ) {
210
225
request , _ := http .NewRequest (http .MethodGet , "/?offset=2" , nil )
211
226
response := httptest .NewRecorder ()
212
227
router .ServeHTTP (response , request )
213
228
214
229
var payload * responsePayload
215
230
json .NewDecoder (response .Body ).Decode (& payload )
216
231
assert .Equal (t , 200 , response .Code )
217
- assert .Equal (t , 3 , len (payload .Data ))
232
+ assert .Equal (t , 4 , len (payload .Data ))
218
233
})
219
234
220
235
t .Run ("should limit response by 2 offset response by 2 and recover 2 records" , func (t * testing.T ) {
0 commit comments