@@ -16,7 +16,8 @@ import (
1616var quickstart models.Quickstart
1717var taggedQuickstart models.Quickstart
1818var settingsQuickstart models.Quickstart
19- var rhelQuickstart models.Quickstart
19+ var rhelQuickstartA models.Quickstart
20+ var rhelQuickstartB models.Quickstart
2021var rbacQuickstart models.Quickstart
2122var rhelBudleTag models.Tag
2223var 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+
8085func 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