-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #7947 from jrjohnson/add-school-tests
Add acceptance tests for schools
- Loading branch information
Showing
10 changed files
with
609 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
184 changes: 184 additions & 0 deletions
184
packages/frontend/tests/acceptance/school/competencies-test.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,184 @@ | ||
import { module, test, todo } from 'qunit'; | ||
import { currentURL } from '@ember/test-helpers'; | ||
import { setupApplicationTest } from 'frontend/tests/helpers'; | ||
import { setupAuthentication } from 'ilios-common'; | ||
import page from 'frontend/tests/pages/school'; | ||
import percySnapshot from '@percy/ember'; | ||
|
||
module('Acceptance | school/competencies', function (hooks) { | ||
setupApplicationTest(hooks); | ||
|
||
hooks.beforeEach(async function () { | ||
this.school = this.server.create('school'); | ||
await setupAuthentication({ administeredSchools: [this.school] }); | ||
|
||
const domains = this.server.createList('competency', 2, { | ||
school: this.school, | ||
}); | ||
this.server.create('aamc-pcrs', { | ||
competencies: [domains[0]], | ||
}); | ||
this.server.createList('aamc-pcrs', 3); | ||
|
||
this.server.createList('competency', 1, { | ||
school: this.school, | ||
parent: domains[0], | ||
}); | ||
}); | ||
|
||
test('collapsed competencies', async function (assert) { | ||
assert.expect(7); | ||
await page.visit({ schoolId: this.school.id }); | ||
assert.strictEqual(currentURL(), '/schools/1'); | ||
await percySnapshot(assert); | ||
|
||
assert.strictEqual(page.manager.schoolCompetenciesCollapsed.title.text, 'Competencies (2/1)'); | ||
const { domains } = page.manager.schoolCompetenciesCollapsed; | ||
assert.strictEqual(domains.length, 2); | ||
assert.strictEqual(domains[0].title, 'competency 0'); | ||
assert.strictEqual(domains[0].summary, 'There is 1 subcompetency'); | ||
assert.strictEqual(domains[1].title, 'competency 1'); | ||
assert.strictEqual(domains[1].summary, 'There are 0 subcompetencies'); | ||
}); | ||
|
||
test('expanded competencies', async function (assert) { | ||
assert.expect(11); | ||
await page.visit({ schoolId: this.school.id, schoolCompetencyDetails: true }); | ||
await percySnapshot(assert); | ||
|
||
assert.strictEqual( | ||
page.manager.schoolCompetenciesExpanded.collapser.text, | ||
'Competencies (2/1)', | ||
); | ||
const { items } = page.manager.schoolCompetenciesExpanded.competenciesList; | ||
assert.strictEqual(items.length, 3); | ||
assert.strictEqual(items[0].title.text, 'competency 0'); | ||
assert.strictEqual(items[1].title.text, 'competency 2'); | ||
assert.strictEqual(items[2].title.text, 'competency 1'); | ||
|
||
assert.strictEqual(items[0].pcrs.items.length, 1); | ||
assert.strictEqual(items[0].pcrs.items[0].text, '1 aamc pcrs 0'); | ||
|
||
assert.strictEqual(items[1].pcrs.items.length, 1); | ||
assert.strictEqual(items[1].pcrs.items[0].text, 'Click to edit'); | ||
|
||
assert.strictEqual(items[2].pcrs.items.length, 1); | ||
assert.strictEqual(items[2].pcrs.items[0].text, 'Click to edit'); | ||
}); | ||
|
||
test('manager', async function (assert) { | ||
assert.expect(5); | ||
await page.visit({ schoolId: this.school.id, schoolCompetencyDetails: true }); | ||
|
||
await page.manager.schoolCompetenciesExpanded.manage(); | ||
await percySnapshot(assert); | ||
const { domains } = page.manager.schoolCompetenciesExpanded.competenciesManager; | ||
|
||
assert.strictEqual(domains.length, 2); | ||
assert.strictEqual(domains[0].details.editor.text, 'competency 0'); | ||
assert.strictEqual(domains[0].competencies.length, 1); | ||
assert.strictEqual(domains[0].competencies[0].editor.text, 'competency 2'); | ||
assert.strictEqual(domains[1].details.editor.text, 'competency 1'); | ||
}); | ||
|
||
test('add new domain', async function (assert) { | ||
assert.expect(8); | ||
await page.visit({ schoolId: this.school.id, schoolCompetencyDetails: true }); | ||
|
||
const { schoolCompetenciesExpanded: e } = page.manager; | ||
await e.manage(); | ||
await e.competenciesManager.newDomain.newCompetency.title.set('new domain'); | ||
await e.competenciesManager.newDomain.newCompetency.save(); | ||
|
||
const { domains } = e.competenciesManager; | ||
assert.strictEqual(domains.length, 3); | ||
assert.strictEqual(domains[0].details.editor.text, 'competency 0'); | ||
assert.strictEqual(domains[0].competencies.length, 1); | ||
assert.strictEqual(domains[0].competencies[0].editor.text, 'competency 2'); | ||
assert.strictEqual(domains[1].details.editor.text, 'competency 1'); | ||
assert.strictEqual(domains[1].competencies.length, 0); | ||
assert.strictEqual(domains[2].details.editor.text, 'new domain'); | ||
assert.strictEqual(domains[2].competencies.length, 0); | ||
}); | ||
|
||
test('add new sub competency', async function (assert) { | ||
assert.expect(7); | ||
await page.visit({ schoolId: this.school.id, schoolCompetencyDetails: true }); | ||
|
||
const { schoolCompetenciesExpanded: e } = page.manager; | ||
await e.manage(); | ||
const { domains } = e.competenciesManager; | ||
await domains[0].newCompetency.title.set('new sub competency'); | ||
await domains[0].newCompetency.save(); | ||
|
||
assert.strictEqual(domains.length, 2); | ||
assert.strictEqual(domains[0].details.editor.text, 'competency 0'); | ||
assert.strictEqual(domains[0].competencies.length, 2); | ||
assert.strictEqual(domains[0].competencies[0].editor.text, 'competency 2'); | ||
assert.strictEqual(domains[0].competencies[1].editor.text, 'new sub competency'); | ||
assert.strictEqual(domains[1].details.editor.text, 'competency 1'); | ||
assert.strictEqual(domains[1].competencies.length, 0); | ||
}); | ||
|
||
test('edit domain title', async function (assert) { | ||
assert.expect(3); | ||
await page.visit({ schoolId: this.school.id, schoolCompetencyDetails: true }); | ||
|
||
const { schoolCompetenciesExpanded: e } = page.manager; | ||
await e.manage(); | ||
const { domains } = e.competenciesManager; | ||
await domains[0].details.editor.title.edit(); | ||
await domains[0].details.editor.title.set('new title'); | ||
await domains[0].details.editor.title.save(); | ||
assert.strictEqual(domains.length, 2); | ||
assert.strictEqual(domains[0].details.editor.text, 'competency 1'); | ||
assert.strictEqual(domains[1].details.editor.text, 'new title'); | ||
}); | ||
|
||
test('edit competency title', async function (assert) { | ||
assert.expect(5); | ||
await page.visit({ schoolId: this.school.id, schoolCompetencyDetails: true }); | ||
|
||
await page.manager.schoolCompetenciesExpanded.manage(); | ||
await percySnapshot(assert); | ||
const { domains } = page.manager.schoolCompetenciesExpanded.competenciesManager; | ||
|
||
await domains[0].competencies[0].editor.title.edit(); | ||
await domains[0].competencies[0].editor.title.set('new title'); | ||
await domains[0].competencies[0].editor.title.save(); | ||
|
||
assert.strictEqual(domains.length, 2); | ||
assert.strictEqual(domains[0].details.editor.text, 'competency 0'); | ||
assert.strictEqual(domains[0].competencies.length, 1); | ||
assert.strictEqual(domains[0].competencies[0].editor.text, 'new title'); | ||
assert.strictEqual(domains[1].details.editor.text, 'competency 1'); | ||
}); | ||
|
||
todo('save changes', async function (assert) { | ||
assert.expect(4); | ||
await page.visit({ schoolId: this.school.id, schoolCompetencyDetails: true }); | ||
const { schoolCompetenciesExpanded: e } = page.manager; | ||
await e.manage(); | ||
const { domains } = e.competenciesManager; | ||
await domains[0].details.editor.title.edit(); | ||
await domains[0].details.editor.title.set('aa domain'); | ||
await domains[0].details.editor.title.save(); | ||
await domains[0].competencies[0].editor.title.edit(); | ||
await domains[0].competencies[0].editor.title.set('aa competency'); | ||
await domains[0].competencies[0].editor.title.save(); | ||
await domains[0].newCompetency.title.set('new sub competency'); | ||
await domains[0].newCompetency.save(); | ||
await domains[1].remove(); | ||
await domains[0].competencies[0].remove(); | ||
await e.competenciesManager.newDomain.newCompetency.title.set('new domain'); | ||
await e.competenciesManager.newDomain.newCompetency.save(); | ||
|
||
await e.save(); | ||
|
||
const { items } = e.competenciesList; | ||
assert.strictEqual(items.length, 3); | ||
assert.strictEqual(items[0].title.text, 'aa domain'); | ||
assert.strictEqual(items[1].title.text, 'new sub competency'); | ||
assert.strictEqual(items[2].title.text, 'new domain'); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
import { module, test } from 'qunit'; | ||
import { currentURL } from '@ember/test-helpers'; | ||
import { setupApplicationTest } from 'frontend/tests/helpers'; | ||
import { setupAuthentication } from 'ilios-common'; | ||
import page from 'frontend/tests/pages/school'; | ||
import percySnapshot from '@percy/ember'; | ||
|
||
module('Acceptance | school/emails', function (hooks) { | ||
setupApplicationTest(hooks); | ||
|
||
hooks.beforeEach(async function () { | ||
this.school = this.server.create('school', { | ||
iliosAdministratorEmail: '[email protected]', | ||
changeAlertRecipients: '[email protected], [email protected]', | ||
}); | ||
await setupAuthentication({ administeredSchools: [this.school] }); | ||
}); | ||
|
||
test('view', async function (assert) { | ||
assert.expect(7); | ||
await page.visit({ schoolId: this.school.id }); | ||
assert.strictEqual(currentURL(), '/schools/1'); | ||
await percySnapshot(assert); | ||
const { emails: c } = page.manager; | ||
|
||
assert.strictEqual(c.title, 'Emails'); | ||
assert.ok(c.canManage); | ||
assert.strictEqual(c.changeAlertRecipients.label, 'Change-alert Recipients:'); | ||
assert.strictEqual(c.changeAlertRecipients.value, '[email protected], [email protected]'); | ||
assert.strictEqual(c.administratorEmail.label, 'Administrator Email:'); | ||
assert.strictEqual(c.administratorEmail.value, '[email protected]'); | ||
}); | ||
|
||
test('manage', async function (assert) { | ||
assert.expect(2); | ||
await page.visit({ schoolId: this.school.id, schoolManageEmails: true }); | ||
await percySnapshot(assert); | ||
const { emailsEditor: c } = page.manager; | ||
|
||
await c.administratorEmail.set('[email protected]'); | ||
await c.changeAlertRecipients.set('[email protected]'); | ||
await c.save(); | ||
|
||
const { emails } = page.manager; | ||
|
||
assert.strictEqual(emails.administratorEmail.value, '[email protected]'); | ||
assert.strictEqual(emails.changeAlertRecipients.value, '[email protected]'); | ||
}); | ||
}); |
Oops, something went wrong.