Skip to content

Commit

Permalink
Merge pull request #7968 from michaelchadwick/frontend-5586-duplicate…
Browse files Browse the repository at this point in the history
…-percysnapshot-fix

fix bug with multiple percySnapshot calls in same test
  • Loading branch information
jrjohnson committed Jul 16, 2024
2 parents 1bf1564 + 11b1174 commit b112879
Show file tree
Hide file tree
Showing 16 changed files with 55 additions and 37 deletions.
5 changes: 3 additions & 2 deletions packages/frontend/tests/acceptance/admin-test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { click, fillIn, currentURL, triggerEvent, visit, waitFor } from '@ember/test-helpers';
import { module, test } from 'qunit';
import { setupAuthentication } from 'ilios-common';
import { getUniqueName } from '../helpers/percy-snapshot-name';

const url = '/admin';

Expand Down Expand Up @@ -36,10 +37,10 @@ module('Acceptance | Admin', function (hooks) {
const name = '.user-display-name';

await visit(url);
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'default'));
await fillIn(userSearch, 'son');
await triggerEvent(userSearch, 'keyup');
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'search results dropdown'));
assert.dom(secondResultUsername).hasText('1 guy M. Mc1son', 'user name is correct');
assert.dom(secondResultEmail).hasText('[email protected]', 'user email is correct');

Expand Down
5 changes: 3 additions & 2 deletions packages/frontend/tests/acceptance/course/overview-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { setupAuthentication } from 'ilios-common';
import { t } from 'ember-intl/test-support';
import page from 'ilios-common/page-objects/course';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../../helpers/percy-snapshot-name';

module('Acceptance | Course - Overview', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -116,11 +117,11 @@ module('Acceptance | Course - Overview', function (hooks) {
assert.strictEqual(page.details.titles, 2);
assert.strictEqual(currentURL(), '/courses/1');
await page.details.collapseControl();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, '/courses/1'));
assert.ok(page.details.titles > 2);
assert.strictEqual(currentURL(), '/courses/1?details=true');
await page.details.collapseControl();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, '/courses/1?details=true'));
assert.strictEqual(page.details.titles, 2);
assert.strictEqual(currentURL(), '/courses/1');
});
Expand Down
5 changes: 3 additions & 2 deletions packages/frontend/tests/acceptance/course/sessionlist-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { setupApplicationTest } from 'frontend/tests/helpers';
import page from 'ilios-common/page-objects/sessions';
import sessionPage from 'ilios-common/page-objects/session';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../../helpers/percy-snapshot-name';

module('Acceptance | Course - Session List', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -231,11 +232,11 @@ module('Acceptance | Course - Session List', function (hooks) {
assert.strictEqual(expandedSessions.length, 0);
assert.notOk(page.courseSessions.sessionsGridHeader.expandCollapse.allAreExpanded);
await page.courseSessions.sessionsGridHeader.expandCollapse.toggle.click();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'not expanded'));
assert.strictEqual(expandedSessions.length, 4);
assert.ok(page.courseSessions.sessionsGridHeader.expandCollapse.allAreExpanded);
await page.courseSessions.sessionsGridHeader.expandCollapse.toggle.click();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'expanded'));
assert.strictEqual(expandedSessions.length, 0);
assert.notOk(page.courseSessions.sessionsGridHeader.expandCollapse.allAreExpanded);
});
Expand Down
5 changes: 3 additions & 2 deletions packages/frontend/tests/acceptance/courses-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { DateTime } from 'luxon';
import page from 'frontend/tests/pages/courses';
import { setupApplicationTest } from 'frontend/tests/helpers';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../helpers/percy-snapshot-name';

module('Acceptance | Courses', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -86,7 +87,7 @@ module('Acceptance | Courses', function (hooks) {
archived: true,
});
await page.visit();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'default'));
assert.strictEqual(page.root.list.courses.length, 5);
assert.strictEqual(page.root.list.courses[0].title, regexCourse.title);
assert.strictEqual(page.root.list.courses[1].title, lastCourse.title);
Expand Down Expand Up @@ -116,7 +117,7 @@ module('Acceptance | Courses', function (hooks) {
assert.strictEqual(page.root.headerTitle, 'Courses (2)');

await page.root.filterByTitle('course');
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'filterByTitle'));
assert.strictEqual(page.root.list.courses.length, 4);
assert.strictEqual(page.root.list.courses[0].title, lastCourse.title);
assert.strictEqual(page.root.list.courses[1].title, regularCourse.title);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { setupApplicationTest } from 'frontend/tests/helpers';
import { a11yAudit } from 'ember-a11y-testing/test-support';
import page from 'ilios-common/page-objects/dashboard-materials';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../../helpers/percy-snapshot-name';

module('Acceptance | Dashboard Materials', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -534,7 +535,7 @@ module('Acceptance | Dashboard Materials', function (hooks) {
};
});
await page.visit();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'default'));

const materials = page.materials.table.rows;
assert.strictEqual(materials.length, 6);
Expand All @@ -551,7 +552,7 @@ module('Acceptance | Dashboard Materials', function (hooks) {
await materials[4].status.click();
await materials[4].status.click();
await materials[5].status.click();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'checkbox status'));

assert.ok(materials[0].status.isChecked);
assert.notOk(materials[1].status.isChecked);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { triggerEvent, waitFor } from '@ember/test-helpers';
import { setupAuthentication } from 'ilios-common';
import page from '../../pages/learner-group';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../../helpers/percy-snapshot-name';

module('Acceptance | learner-group/bulk-assignment', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -60,7 +61,7 @@ module('Acceptance | learner-group/bulk-assignment', function (hooks) {
test('upload users', async function (assert) {
assert.expect(12);
await page.visit({ learnerGroupId: 1 });
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'learnerGroupId 1'));
await page.root.actions.buttons.bulkAssignment.click();
this.server.create('user', {
firstName: 'jasper',
Expand All @@ -80,7 +81,7 @@ module('Acceptance | learner-group/bulk-assignment', function (hooks) {
];
await triggerUpload(users);
await waitFor('[data-test-upload-data-valid-users]');
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'upload users'));

assert.strictEqual(page.root.bulkAssignment.validUploadedUsers.length, 2);
assert.ok(page.root.bulkAssignment.validUploadedUsers[0].isValid);
Expand Down Expand Up @@ -300,13 +301,13 @@ module('Acceptance | learner-group/bulk-assignment', function (hooks) {
assert.strictEqual(this.server.db.learnerGroups[0].userIds, null);
assert.strictEqual(this.server.db.learnerGroups[1].userIds, null);
assert.strictEqual(this.server.db.learnerGroups[2].userIds, null);
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'pre-bulkAssignment'));

await page.root.bulkAssignment.submitFinalData();
assert.deepEqual(this.server.db.learnerGroups[0].userIds, ['2', '3']);
assert.deepEqual(this.server.db.learnerGroups[1].userIds, null);
assert.deepEqual(this.server.db.learnerGroups[2].userIds, ['3']);
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'post-bulkAssignment'));
});

test('create a new group when requested', async function (assert) {
Expand Down
7 changes: 4 additions & 3 deletions packages/frontend/tests/acceptance/learnergroup-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { setupApplicationTest } from 'frontend/tests/helpers';
import page from '../pages/learner-group';
import learnerGroupsPage from '../pages/learner-groups';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../helpers/percy-snapshot-name';

module('Acceptance | Learner Group', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -104,13 +105,13 @@ module('Acceptance | Learner Group', function (hooks) {
});

await page.visit({ learnerGroupId: 1 });
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'learnerGroupId1'));
assert.strictEqual(page.root.subgroups.list.items.length, 2);
assert.strictEqual(page.root.subgroups.list.items[0].title, 'learner group 1');
assert.strictEqual(page.root.subgroups.list.items[1].title, 'learner group 2');

await page.root.subgroups.toggleNewLearnerGroupForm();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'toggleNewLearnerGroupForm'));

assert.ok(page.root.subgroups.newLearnerGroupForm.singleGroupSelected);
assert.notOk(page.root.subgroups.newLearnerGroupForm.multipleGroupSelected);
Expand All @@ -132,7 +133,7 @@ module('Acceptance | Learner Group', function (hooks) {
await page.root.subgroups.newLearnerGroupForm.chooseMultipleGroups();
await page.root.subgroups.newLearnerGroupForm.multiple.setNumberOfGroups(2);
await page.root.subgroups.newLearnerGroupForm.multiple.save();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'toggleNewLearnerGroupForm +2 subgroups'));

assert.strictEqual(page.root.subgroups.list.items.length, 9);
assert.strictEqual(page.root.subgroups.list.items[0].title, 'learner group 0 1');
Expand Down
9 changes: 5 additions & 4 deletions packages/frontend/tests/acceptance/learnergroups-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { setupApplicationTest } from 'frontend/tests/helpers';
import page from 'frontend/tests/pages/learner-groups';
import learnerGroupPage from 'frontend/tests/pages/learner-group';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../helpers/percy-snapshot-name';

module('Acceptance | Learner Groups', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -470,9 +471,9 @@ module('Acceptance | Learner Groups', function (hooks) {
await page.list.items[0].copy();
assert.ok(page.list.confirmCopy.canCopyWithoutLearners);
assert.ok(page.list.confirmCopy.canCopyWithLearners);
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'canCopyWithLearners'));
await page.list.confirmCopy.copyWithoutLearners();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'copyWithoutLearners'));

assert.strictEqual(page.list.items.length, 2);
assert.strictEqual(page.list.items[0].title, 'learner group 0');
Expand Down Expand Up @@ -535,9 +536,9 @@ module('Acceptance | Learner Groups', function (hooks) {
await page.list.items[0].copy();
assert.ok(page.list.confirmCopy.canCopyWithoutLearners);
assert.ok(page.list.confirmCopy.canCopyWithLearners);
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'canCopyWithLearners'));
await page.list.confirmCopy.copyWithLearners();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'copyWithLearners'));

assert.strictEqual(page.list.items.length, 2);
assert.strictEqual(page.list.items[0].title, 'learner group 0');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { setupAuthentication } from 'ilios-common';
import { setupApplicationTest } from 'frontend/tests/helpers';
import page from 'frontend/tests/pages/program';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../../helpers/percy-snapshot-name';

module('Acceptance | Program - ProgramYear List', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -42,7 +43,7 @@ module('Acceptance | Program - ProgramYear List', function (hooks) {
archived: true,
});
await page.visit({ programId: this.program.id });
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'default'));
assert.strictEqual(page.programYears.items.length, 3);
assert.strictEqual(page.programYears.items[0].link.text, `${thisYear - 2}`);
assert.strictEqual(page.programYears.items[0].title, 'cohort 1');
Expand All @@ -51,7 +52,7 @@ module('Acceptance | Program - ProgramYear List', function (hooks) {
assert.strictEqual(page.programYears.items[2].link.text, `${thisYear}`);
assert.strictEqual(page.programYears.items[2].title, 'cohort 0');
await page.programYears.expandCollapse.toggle();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'show programYears'));
assert.strictEqual(page.programYears.newProgramYear.years.options.length, 6);
});

Expand Down
5 changes: 3 additions & 2 deletions packages/frontend/tests/acceptance/programs-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { setupApplicationTest } from 'frontend/tests/helpers';
import page from 'frontend/tests/pages/programs';
import detailPage from 'frontend/tests/pages/program';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../helpers/percy-snapshot-name';

module('Acceptance | Programs', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -33,10 +34,10 @@ module('Acceptance | Programs', function (hooks) {

await visit(url);
await click(expandButton);
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'expandButton'));
await fillIn(input, 'Test Title');
await click(saveButton);
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'saveButton'));
function getContent(i) {
return find(`tbody tr td:nth-of-type(${i + 1})`).textContent.trim();
}
Expand Down
5 changes: 3 additions & 2 deletions packages/frontend/tests/acceptance/reports/subjects-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import page from 'frontend/tests/pages/reports';
import subjectReportPage from 'frontend/tests/pages/reports-subject';
import { setupApplicationTest } from 'frontend/tests/helpers';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../../helpers/percy-snapshot-name';

module('Acceptance | Reports - Subject Reports', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -96,9 +97,9 @@ module('Acceptance | Reports - Subject Reports', function (hooks) {
await page.root.list.newSubject.objects.choose('course');
await page.root.list.newSubject.course.input('cour');
await page.root.list.newSubject.course.results[1].click();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'pre-save form'));
await page.root.list.newSubject.save();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'post-save form'));
assert.strictEqual(page.root.list.table.reports.length, 3);
assert.strictEqual(page.root.list.table.reports[0].title, 'aardvark');
assert.strictEqual(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { setupAuthentication } from 'ilios-common';
import { setupApplicationTest } from 'frontend/tests/helpers';
import page from 'frontend/tests/pages/school';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../../helpers/percy-snapshot-name';

module('Acceptance | School - Session Attributes', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -107,7 +108,7 @@ module('Acceptance | School - Session Attributes', function (hooks) {
schoolSessionAttributesDetails: true,
schoolManageSessionAttributes: true,
});
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'default'));
assert.strictEqual(
page.manager.schoolSessionAttributes.expanded.manager.attendanceRequired.label,
'Attendance Required',
Expand Down Expand Up @@ -137,7 +138,7 @@ module('Acceptance | School - Session Attributes', function (hooks) {
await page.manager.schoolSessionAttributes.expanded.manager.attendanceRequired.check();
await page.manager.schoolSessionAttributes.expanded.manager.supplemental.check();
await page.manager.schoolSessionAttributes.expanded.manager.specialEquipmentRequired.check();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'session attributes checked'));
await page.manager.schoolSessionAttributes.expanded.save();
assert.strictEqual(
page.manager.schoolSessionAttributes.expanded.attributes.attendanceRequired.label,
Expand Down
13 changes: 7 additions & 6 deletions packages/frontend/tests/acceptance/user-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { setupAuthentication, freezeDateAt, unfreezeDate } from 'ilios-common';
import { setupApplicationTest } from 'frontend/tests/helpers';
import page from 'frontend/tests/pages/user';
import percySnapshot from '@percy/ember';
import { getUniqueName } from '../helpers/percy-snapshot-name';

module('Acceptance | User', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -47,10 +48,10 @@ module('Acceptance | User', function (hooks) {
const name = '.user-display-name';

await visit('/users/100');
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'default'));
await fillIn(userSearch, 'son');
await triggerEvent(userSearch, 'keyup');
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'search results dropdown'));
assert.dom(secondResultUsername).hasText('1 guy M. Mc1son', 'user name is correct');
assert.dom(secondResultEmail).hasText('[email protected]', 'user email is correct');

Expand Down Expand Up @@ -79,7 +80,7 @@ module('Acceptance | User', function (hooks) {
school: this.school,
});
await page.visit({ userId: user1.id });
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'user1'));
assert.strictEqual(page.roles.student.value, 'Yes');
assert.strictEqual(page.roles.student.label, 'Student:');
assert.strictEqual(page.roles.formerStudent.value, 'Yes');
Expand All @@ -89,13 +90,13 @@ module('Acceptance | User', function (hooks) {
assert.strictEqual(page.roles.excludeFromSync.value, 'Yes');
assert.strictEqual(page.roles.excludeFromSync.label, 'Exclude From Sync:');
await page.roles.manage();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'user1 manage roles'));
assert.ok(page.roles.formerStudent.selected);
assert.ok(page.roles.enabled.selected);
assert.ok(page.roles.excludeFromSync.selected);

await page.visit({ userId: user2.id });
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'user2'));
assert.strictEqual(page.roles.student.value, 'No');
assert.strictEqual(page.roles.student.label, 'Student:');
assert.strictEqual(page.roles.formerStudent.value, 'No');
Expand All @@ -105,7 +106,7 @@ module('Acceptance | User', function (hooks) {
assert.strictEqual(page.roles.excludeFromSync.value, 'No');
assert.strictEqual(page.roles.excludeFromSync.label, 'Exclude From Sync:');
await page.roles.manage();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'user2 manage roles'));
assert.notOk(page.roles.formerStudent.selected);
assert.notOk(page.roles.enabled.selected);
assert.notOk(page.roles.excludeFromSync.selected);
Expand Down
5 changes: 3 additions & 2 deletions packages/frontend/tests/acceptance/users-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { setupApplicationTest } from 'frontend/tests/helpers';
import page from 'frontend/tests/pages/users';
import percySnapshot from '@percy/ember';
import userPage from 'frontend/tests/pages/user';
import { getUniqueName } from '../helpers/percy-snapshot-name';

module('Acceptance | Users', function (hooks) {
setupApplicationTest(hooks);
Expand Down Expand Up @@ -50,9 +51,9 @@ module('Acceptance | Users', function (hooks) {
assert.expect(3);
this.server.createList('user', 40, { firstName: 'Test', lastName: 'Name', schoolId: 1 });
await page.visit();
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'default'));
await page.root.search.set('Test Name');
await percySnapshot(assert);
await percySnapshot(getUniqueName(assert, 'search results'));
assert.strictEqual(page.root.userList.users[0].userNameInfo.fullName, 'Test M. Name');
assert.strictEqual(currentURL(), '/users?filter=Test%20Name', 'no query params for search');
await page.root.userList.users[0].viewUserDetails();
Expand Down
3 changes: 3 additions & 0 deletions packages/frontend/tests/helpers/percy-snapshot-name.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export function getUniqueName(assert, description) {
return assert.test.module.name + ' | ' + assert.test.testName + ' | ' + description;
}
Loading

0 comments on commit b112879

Please sign in to comment.