@@ -10,14 +10,15 @@ const { authenticatedAdminOrSupportSession } = require('../../support/session');
10
10
const factory = require ( '../../support/factory' ) ;
11
11
const csrfToken = require ( '../../support/csrfToken' ) ;
12
12
const config = require ( '../../../../config' ) ;
13
- const { Site, User, BuildLog } = require ( '../../../../api/models' ) ;
13
+ const { Site, User, BuildLog, Organization } = require ( '../../../../api/models' ) ;
14
14
const sessionConfig = require ( '../../../../api/admin/sessionConfig' ) ;
15
15
const app = require ( '../../../../api/admin' ) ;
16
+ const { createSiteUserOrg } = require ( '../../support/site-user' ) ;
16
17
17
18
const itShouldRequireAdminAuthentication = ( path , schema , method = 'get' ) => {
18
19
it ( 'should require admin authentication' , async ( ) => {
19
20
const response = await request ( app ) [ method ] ( path ) . expect ( 401 ) ;
20
- validateAgainstJSONSchema ( 'GET' , schema , 401 , response . body ) ;
21
+ validateAgainstJSONSchema ( method , schema , 401 , response . body ) ;
21
22
expect ( response . body . message ) . to . equal ( 'Unauthorized' ) ;
22
23
} ) ;
23
24
} ;
@@ -40,7 +41,7 @@ const buildResponseExpectations = (response, build) => {
40
41
const s3Mock = mockClient ( S3Client ) ;
41
42
42
43
describe ( 'Admin - Site API' , ( ) => {
43
- afterEach ( ( ) => Promise . all ( [ User . truncate ( ) , Site . truncate ( ) ] ) ) ;
44
+ afterEach ( ( ) => Promise . all ( [ User . truncate ( ) , Site . truncate ( ) , Organization . truncate ( ) ] ) ) ;
44
45
45
46
describe ( 'GET /admin/builds' , ( ) => {
46
47
itShouldRequireAdminAuthentication ( '/builds' , '/site/{site_id}/build' ) ;
@@ -135,6 +136,27 @@ describe('Admin - Site API', () => {
135
136
} ) ;
136
137
} ) ;
137
138
139
+ describe ( 'POST /builds' , ( ) => {
140
+ describe ( 'rebuild' , ( ) => {
141
+ it ( 'rebuilds a specified build' , async ( ) => {
142
+ const { site, user } = await createSiteUserOrg ( ) ;
143
+ const build = await factory . build ( { site } ) ;
144
+
145
+ const cookie = await authenticatedAdminOrSupportSession ( user , sessionConfig ) ;
146
+ await request ( app )
147
+ . post ( `/builds` )
148
+ . set ( 'Cookie' , cookie )
149
+ . set ( 'Origin' , config . app . adminHostname )
150
+ . set ( 'x-csrf-token' , csrfToken . getToken ( ) )
151
+ . send ( {
152
+ buildId : build . id ,
153
+ siteId : site . id ,
154
+ } )
155
+ . expect ( 200 ) ;
156
+ } ) ;
157
+ } ) ;
158
+ } ) ;
159
+
138
160
describe ( 'GET /builds/:id/log' , ( ) => {
139
161
itShouldRequireAdminAuthentication ( '/builds/1/log' , '/build/{build_id}/log' ) ;
140
162
0 commit comments