Skip to content

Commit 1b866e6

Browse files
committed
fix: don't fetch site user model, allow admin rebuild
1 parent a7f4caa commit 1b866e6

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

api/admin/controllers/build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ module.exports = wrapHandlers({
106106
include: [
107107
{
108108
model: Site,
109-
include: [User, Domain, SiteBranchConfig],
109+
include: [Domain, SiteBranchConfig],
110110
},
111111
],
112112
});

test/api/admin/requests/build.test.js

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@ const { authenticatedAdminOrSupportSession } = require('../../support/session');
1010
const factory = require('../../support/factory');
1111
const csrfToken = require('../../support/csrfToken');
1212
const config = require('../../../../config');
13-
const { Site, User, BuildLog } = require('../../../../api/models');
13+
const { Site, User, BuildLog, Organization } = require('../../../../api/models');
1414
const sessionConfig = require('../../../../api/admin/sessionConfig');
1515
const app = require('../../../../api/admin');
16+
const { createSiteUserOrg } = require('../../support/site-user');
1617

1718
const itShouldRequireAdminAuthentication = (path, schema, method = 'get') => {
1819
it('should require admin authentication', async () => {
1920
const response = await request(app)[method](path).expect(401);
20-
validateAgainstJSONSchema('GET', schema, 401, response.body);
21+
validateAgainstJSONSchema(method, schema, 401, response.body);
2122
expect(response.body.message).to.equal('Unauthorized');
2223
});
2324
};
@@ -40,7 +41,7 @@ const buildResponseExpectations = (response, build) => {
4041
const s3Mock = mockClient(S3Client);
4142

4243
describe('Admin - Site API', () => {
43-
afterEach(() => Promise.all([User.truncate(), Site.truncate()]));
44+
afterEach(() => Promise.all([User.truncate(), Site.truncate(), Organization.truncate()]));
4445

4546
describe('GET /admin/builds', () => {
4647
itShouldRequireAdminAuthentication('/builds', '/site/{site_id}/build');
@@ -135,6 +136,27 @@ describe('Admin - Site API', () => {
135136
});
136137
});
137138

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+
138160
describe('GET /builds/:id/log', () => {
139161
itShouldRequireAdminAuthentication('/builds/1/log', '/build/{build_id}/log');
140162

0 commit comments

Comments
 (0)