105 lines
3.7 KiB
JavaScript
105 lines
3.7 KiB
JavaScript
|
import {authenticateSession} from 'ember-simple-auth/test-support';
|
||
|
import {currentURL, visit} from '@ember/test-helpers';
|
||
|
import {describe, it} from 'mocha';
|
||
|
import {expect} from 'chai';
|
||
|
import {setupApplicationTest} from 'ember-mocha';
|
||
|
import {setupMirage} from 'ember-cli-mirage/test-support';
|
||
|
|
||
|
describe('Acceptance: Launch flow', function () {
|
||
|
const hooks = setupApplicationTest();
|
||
|
setupMirage(hooks);
|
||
|
|
||
|
it('is not accessible when logged out', async function () {
|
||
|
await visit('/launch');
|
||
|
expect(currentURL()).to.equal('/signin');
|
||
|
|
||
|
await visit('/launch/customise-design');
|
||
|
expect(currentURL()).to.equal('/signin');
|
||
|
|
||
|
await visit('/launch/connect-stripe');
|
||
|
expect(currentURL()).to.equal('/signin');
|
||
|
|
||
|
await visit('/launch/set-pricing');
|
||
|
expect(currentURL()).to.equal('/signin');
|
||
|
|
||
|
await visit('/launch/complete');
|
||
|
expect(currentURL()).to.equal('/signin');
|
||
|
});
|
||
|
|
||
|
describe('when logged in', function () {
|
||
|
beforeEach(async function () {
|
||
|
// TODO: remove this setup when out of dev experiments
|
||
|
this.server.loadFixtures('configs');
|
||
|
const config = this.server.schema.configs.first();
|
||
|
config.update({
|
||
|
enableDeveloperExperiments: true
|
||
|
});
|
||
|
|
||
|
let role = this.server.create('role', {name: 'Administrator'});
|
||
|
this.server.create('user', {roles: [role]});
|
||
|
|
||
|
return await authenticateSession();
|
||
|
});
|
||
|
|
||
|
it('can visit /launch', async function () {
|
||
|
await visit('/launch');
|
||
|
expect(currentURL()).to.equal('/launch/customise-design');
|
||
|
});
|
||
|
|
||
|
it('can visit /launch/customise-design', async function () {
|
||
|
await visit('/launch/customise-design');
|
||
|
expect(currentURL()).to.equal('/launch/customise-design');
|
||
|
});
|
||
|
|
||
|
it('can visit /launch/connect-stripe', async function () {
|
||
|
await visit('/launch/connect-stripe');
|
||
|
expect(currentURL()).to.equal('/launch/connect-stripe');
|
||
|
});
|
||
|
|
||
|
it('can visit /launch/set-pricing', async function () {
|
||
|
await visit('/launch/set-pricing');
|
||
|
expect(currentURL()).to.equal('/launch/set-pricing');
|
||
|
});
|
||
|
|
||
|
it('can visit /launch/complete', async function () {
|
||
|
await visit('/launch/complete');
|
||
|
expect(currentURL()).to.equal('/launch/complete');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// TODO: remove this whole section when out of dev experiments
|
||
|
describe('developer experiments', function () {
|
||
|
describe('when disabled', function () {
|
||
|
beforeEach(async function () {
|
||
|
this.server.loadFixtures('configs');
|
||
|
const config = this.server.schema.configs.first();
|
||
|
config.update({
|
||
|
enableDeveloperExperiments: false
|
||
|
});
|
||
|
|
||
|
let role = this.server.create('role', {name: 'Administrator'});
|
||
|
this.server.create('user', {roles: [role]});
|
||
|
|
||
|
return await authenticateSession();
|
||
|
});
|
||
|
|
||
|
it('redirects all routes to /site', async function () {
|
||
|
await visit('/launch');
|
||
|
expect(currentURL()).to.equal('/site');
|
||
|
|
||
|
await visit('/launch/customise-design');
|
||
|
expect(currentURL()).to.equal('/site');
|
||
|
|
||
|
await visit('/launch/connect-stripe');
|
||
|
expect(currentURL()).to.equal('/site');
|
||
|
|
||
|
await visit('/launch/set-pricing');
|
||
|
expect(currentURL()).to.equal('/site');
|
||
|
|
||
|
await visit('/launch/complete');
|
||
|
expect(currentURL()).to.equal('/site');
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|