0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-24 23:48:13 -05:00

Refactored regression users tests to use async/await

refs https://github.com/TryGhost/Toolbox/issues/138

- This is a continuation of a bigger refactor to use async/await syntax before migrating "startGhost" methods to only use backend boot
- Removed a little bit of dead code (like admin user creation) which should speed up test execution too!
- Refactored user variables to be declared closer to their usecases instead of being high up in a global scope - variables shoul not live that far apart from the code that uses them
This commit is contained in:
Naz 2021-11-24 16:34:36 +04:00 committed by naz
parent b19a2ed2d7
commit 4cdcb16e49
3 changed files with 114 additions and 198 deletions

View file

@ -7,39 +7,21 @@ const localUtils = require('./utils');
let request; let request;
describe('User API', function () { describe('User API', function () {
let editor;
let author;
let otherAuthor;
let admin;
describe('As Owner', function () { describe('As Owner', function () {
before(function () { let otherAuthor;
return testUtils.startGhost()
.then(function () { before(async function () {
await testUtils.startGhost();
request = supertest.agent(config.get('url')); request = supertest.agent(config.get('url'));
})
.then(function () {
// create inactive user // create inactive user
return testUtils.createUser({ otherAuthor = await testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+3@ghost.org'}), user: testUtils.DataGenerator.forKnex.createUser({email: 'test+3@ghost.org'}),
role: testUtils.DataGenerator.Content.roles[2].name role: testUtils.DataGenerator.Content.roles[2].name
}); });
})
.then(function (_user) {
otherAuthor = _user;
// create admin user
return testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+admin@ghost.org', slug: 'owner'}),
role: testUtils.DataGenerator.Content.roles[3].name
});
})
.then(function (_user) {
admin = _user;
// by default we login with the owner // by default we login with the owner
return localUtils.doAuth(request); await localUtils.doAuth(request);
});
}); });
describe('Read', function () { describe('Read', function () {
@ -145,25 +127,20 @@ describe('User API', function () {
}); });
describe('As Editor', function () { describe('As Editor', function () {
before(function () { let editor;
return testUtils.startGhost()
.then(function () { before(async function () {
await testUtils.startGhost();
request = supertest.agent(config.get('url')); request = supertest.agent(config.get('url'));
})
.then(function () {
// create editor // create editor
return testUtils.createUser({ editor = await testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+1@ghost.org'}), user: testUtils.DataGenerator.forKnex.createUser({email: 'test+1@ghost.org'}),
role: testUtils.DataGenerator.Content.roles[1].name role: testUtils.DataGenerator.Content.roles[1].name
}); });
})
.then(function (_user1) {
editor = _user1;
request.user = editor;
request.user = editor;
// by default we login with the owner // by default we login with the owner
return localUtils.doAuth(request); await localUtils.doAuth(request);
});
}); });
describe('success cases', function () { describe('success cases', function () {
@ -224,25 +201,20 @@ describe('User API', function () {
}); });
describe('As Author', function () { describe('As Author', function () {
before(function () { let author;
return testUtils.startGhost()
.then(function () { before(async function () {
await testUtils.startGhost();
request = supertest.agent(config.get('url')); request = supertest.agent(config.get('url'));
})
.then(function () {
// create author // create author
return testUtils.createUser({ author = await testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+2@ghost.org'}), user: testUtils.DataGenerator.forKnex.createUser({email: 'test+2@ghost.org'}),
role: testUtils.DataGenerator.Content.roles[2].name role: testUtils.DataGenerator.Content.roles[2].name
}); });
})
.then(function (_user2) {
author = _user2;
request.user = author;
request.user = author;
// by default we login with the owner // by default we login with the owner
return localUtils.doAuth(request); await localUtils.doAuth(request);
});
}); });
describe('success cases', function () { describe('success cases', function () {

View file

@ -7,39 +7,21 @@ const localUtils = require('./utils');
let request; let request;
describe('User API', function () { describe('User API', function () {
let editor;
let author;
let otherAuthor;
let admin;
describe('As Owner', function () { describe('As Owner', function () {
before(function () { let otherAuthor;
return testUtils.startGhost()
.then(function () { before(async function () {
await testUtils.startGhost();
request = supertest.agent(config.get('url')); request = supertest.agent(config.get('url'));
})
.then(function () {
// create inactive user // create inactive user
return testUtils.createUser({ otherAuthor = await testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+3@ghost.org'}), user: testUtils.DataGenerator.forKnex.createUser({email: 'test+3@ghost.org'}),
role: testUtils.DataGenerator.Content.roles[2].name role: testUtils.DataGenerator.Content.roles[2].name
}); });
})
.then(function (_user) {
otherAuthor = _user;
// create admin user
return testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+admin@ghost.org', slug: 'owner'}),
role: testUtils.DataGenerator.Content.roles[3].name
});
})
.then(function (_user) {
admin = _user;
// by default we login with the owner // by default we login with the owner
return localUtils.doAuth(request); await localUtils.doAuth(request);
});
}); });
describe('Read', function () { describe('Read', function () {
@ -145,25 +127,20 @@ describe('User API', function () {
}); });
describe('As Editor', function () { describe('As Editor', function () {
before(function () { let editor;
return testUtils.startGhost()
.then(function () { before(async function () {
await testUtils.startGhost();
request = supertest.agent(config.get('url')); request = supertest.agent(config.get('url'));
})
.then(function () {
// create editor // create editor
return testUtils.createUser({ editor = await testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+1@ghost.org'}), user: testUtils.DataGenerator.forKnex.createUser({email: 'test+1@ghost.org'}),
role: testUtils.DataGenerator.Content.roles[1].name role: testUtils.DataGenerator.Content.roles[1].name
}); });
})
.then(function (_user1) {
editor = _user1;
request.user = editor;
request.user = editor;
// by default we login with the owner // by default we login with the owner
return localUtils.doAuth(request); await localUtils.doAuth(request);
});
}); });
describe('success cases', function () { describe('success cases', function () {
@ -224,25 +201,20 @@ describe('User API', function () {
}); });
describe('As Author', function () { describe('As Author', function () {
before(function () { let author;
return testUtils.startGhost()
.then(function () { before(async function () {
await testUtils.startGhost();
request = supertest.agent(config.get('url')); request = supertest.agent(config.get('url'));
})
.then(function () {
// create author // create author
return testUtils.createUser({ author = await testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+2@ghost.org'}), user: testUtils.DataGenerator.forKnex.createUser({email: 'test+2@ghost.org'}),
role: testUtils.DataGenerator.Content.roles[2].name role: testUtils.DataGenerator.Content.roles[2].name
}); });
})
.then(function (_user2) {
author = _user2;
request.user = author;
request.user = author;
// by default we login with the owner // by default we login with the owner
return localUtils.doAuth(request); await localUtils.doAuth(request);
});
}); });
describe('success cases', function () { describe('success cases', function () {

View file

@ -7,39 +7,21 @@ const localUtils = require('./utils');
let request; let request;
describe('User API', function () { describe('User API', function () {
let editor;
let author;
let otherAuthor;
let admin;
describe('As Owner', function () { describe('As Owner', function () {
before(function () { let otherAuthor;
return testUtils.startGhost()
.then(function () { before(async function () {
await testUtils.startGhost();
request = supertest.agent(config.get('url')); request = supertest.agent(config.get('url'));
})
.then(function () {
// create inactive user // create inactive user
return testUtils.createUser({ otherAuthor = await testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+3@ghost.org'}), user: testUtils.DataGenerator.forKnex.createUser({email: 'test+3@ghost.org'}),
role: testUtils.DataGenerator.Content.roles[2].name role: testUtils.DataGenerator.Content.roles[2].name
}); });
})
.then(function (_user) {
otherAuthor = _user;
// create admin user
return testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+admin@ghost.org', slug: 'owner'}),
role: testUtils.DataGenerator.Content.roles[3].name
});
})
.then(function (_user) {
admin = _user;
// by default we login with the owner // by default we login with the owner
return localUtils.doAuth(request); await localUtils.doAuth(request);
});
}); });
describe('Read', function () { describe('Read', function () {
@ -145,25 +127,20 @@ describe('User API', function () {
}); });
describe('As Editor', function () { describe('As Editor', function () {
before(function () { let editor;
return testUtils.startGhost()
.then(function () { before(async function () {
await testUtils.startGhost();
request = supertest.agent(config.get('url')); request = supertest.agent(config.get('url'));
})
.then(function () {
// create editor // create editor
return testUtils.createUser({ editor = await testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+1@ghost.org'}), user: testUtils.DataGenerator.forKnex.createUser({email: 'test+1@ghost.org'}),
role: testUtils.DataGenerator.Content.roles[1].name role: testUtils.DataGenerator.Content.roles[1].name
}); });
})
.then(function (_user1) {
editor = _user1;
request.user = editor;
request.user = editor;
// by default we login with the owner // by default we login with the owner
return localUtils.doAuth(request); await localUtils.doAuth(request);
});
}); });
describe('success cases', function () { describe('success cases', function () {
@ -224,25 +201,20 @@ describe('User API', function () {
}); });
describe('As Author', function () { describe('As Author', function () {
before(function () { let author;
return testUtils.startGhost()
.then(function () { before(async function () {
await testUtils.startGhost();
request = supertest.agent(config.get('url')); request = supertest.agent(config.get('url'));
})
.then(function () {
// create author // create author
return testUtils.createUser({ author = await testUtils.createUser({
user: testUtils.DataGenerator.forKnex.createUser({email: 'test+2@ghost.org'}), user: testUtils.DataGenerator.forKnex.createUser({email: 'test+2@ghost.org'}),
role: testUtils.DataGenerator.Content.roles[2].name role: testUtils.DataGenerator.Content.roles[2].name
}); });
})
.then(function (_user2) {
author = _user2;
request.user = author;
request.user = author;
// by default we login with the owner // by default we login with the owner
return localUtils.doAuth(request); await localUtils.doAuth(request);
});
}); });
describe('success cases', function () { describe('success cases', function () {