diff --git a/ui/core/tests/acceptance/projects-test.js b/ui/core/tests/acceptance/projects-test.js index 612da5ffb..af00df26d 100644 --- a/ui/core/tests/acceptance/projects-test.js +++ b/ui/core/tests/acceptance/projects-test.js @@ -17,6 +17,26 @@ module('Acceptance | projects', function (hooks) { assert.equal(currentURL(), '/orgs/1/projects'); }); + test('can create new projects', async function (assert) { + assert.expect(3); + assert.equal(this.server.db.projects.length, 0); + await visit('/orgs/1/projects/new'); + await fillIn('[name="name"]', 'random string'); + await click('[type="submit"]'); + assert.equal(currentURL(), '/orgs/1/projects/1'); + assert.equal(this.server.db.projects.length, 1); + }); + + test('can cancel create new projects', async function (assert) { + assert.expect(3); + assert.equal(this.server.db.projects.length, 0); + await visit('/orgs/1/projects/new'); + await fillIn('[name="name"]', 'random string'); + await click('.rose-form-actions [type="button"]'); + assert.equal(currentURL(), '/orgs/1/projects'); + assert.equal(this.server.db.projects.length, 0); + }); + test('saving a new project with invalid fields displays error messages', async function (assert) { assert.expect(2); this.server.post('/orgs/:org_id/projects', () => { @@ -53,6 +73,34 @@ module('Acceptance | projects', function (hooks) { ); }); + test('can save changes to existing project', async function (assert) { + assert.expect(2); + this.server.createList('project', 1, {name: 'MyProject'}); + await visit('/orgs/1/projects/1'); + await fillIn('[name="name"]', 'random string'); + await click('.rose-form-actions [type="submit"]'); + assert.equal(currentURL(), '/orgs/1/projects/1'); + assert.equal(this.server.db.projects[0].name, 'random string'); + }); + + test('can cancel changes to existing project', async function (assert) { + assert.expect(1); + this.server.createList('project', 1, {name: 'MyProject'}); + await visit('/orgs/1/projects/1'); + await fillIn('[name="name"]', 'random string'); + await click('.rose-form-actions [type="button"]'); + assert.equal(find('[name="name"]').value, 'MyProject'); + }); + + test('can delete project', async function(assert) { + assert.expect(2); + this.server.createList('project', 1); + assert.equal(this.server.db.projects.length, 1); + await visit('/orgs/1/projects/1'); + await click('.rose-button-warning'); + assert.equal(this.server.db.projects.length, 0); + }); + test('saving an existing project with invalid fields displays error messages', async function (assert) { assert.expect(2); this.server.createList('project', 1);