From aff5ec60f9e0cdd18060f8590595aaf1a3c634c4 Mon Sep 17 00:00:00 2001 From: Michael Chadwick Date: Mon, 3 Jun 2024 15:49:11 -0700 Subject: [PATCH 1/9] added loading style for learner groups --- .../app/styles/components/learner-groups/loading.scss | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/frontend/app/styles/components/learner-groups/loading.scss diff --git a/packages/frontend/app/styles/components/learner-groups/loading.scss b/packages/frontend/app/styles/components/learner-groups/loading.scss new file mode 100644 index 0000000000..f31b7bc1c0 --- /dev/null +++ b/packages/frontend/app/styles/components/learner-groups/loading.scss @@ -0,0 +1,5 @@ +@use "../../mixins" as m; + +.instructor-groups-loading { + @include m.main-list-loading-table; +} From 0c4e22e1859277f053b2410eae4e21ab7964eb72 Mon Sep 17 00:00:00 2001 From: Michael Chadwick Date: Mon, 3 Jun 2024 16:04:08 -0700 Subject: [PATCH 2/9] fixed css selector typo --- .../frontend/app/styles/components/learner-groups/loading.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/frontend/app/styles/components/learner-groups/loading.scss b/packages/frontend/app/styles/components/learner-groups/loading.scss index f31b7bc1c0..7bdf2c270e 100644 --- a/packages/frontend/app/styles/components/learner-groups/loading.scss +++ b/packages/frontend/app/styles/components/learner-groups/loading.scss @@ -1,5 +1,5 @@ @use "../../mixins" as m; -.instructor-groups-loading { +.learner-groups-loading { @include m.main-list-loading-table; } From 22987b6a505304b24d5fbc61ae767c7213ab122c Mon Sep 17 00:00:00 2001 From: Michael Chadwick Date: Tue, 4 Jun 2024 11:08:08 -0700 Subject: [PATCH 3/9] added new LearnerGroup::Loading component and test; now loading style --- .../app/components/learner-groups/loading.hbs | 32 +++++++++++++++++++ packages/frontend/app/styles/components.scss | 1 + .../components/learner-groups/loading-test.js | 17 ++++++++++ 3 files changed, 50 insertions(+) create mode 100644 packages/frontend/app/components/learner-groups/loading.hbs create mode 100644 packages/frontend/tests/integration/components/learner-groups/loading-test.js diff --git a/packages/frontend/app/components/learner-groups/loading.hbs b/packages/frontend/app/components/learner-groups/loading.hbs new file mode 100644 index 0000000000..ecc1759b79 --- /dev/null +++ b/packages/frontend/app/components/learner-groups/loading.hbs @@ -0,0 +1,32 @@ + + + + + + + + + + + {{! template-lint-disable no-unused-block-params }} + {{#each (repeat @count) as |empty|}} + + + + + + + {{/each}} + +
+ {{t "general.learnerGroupTitle"}} + + {{t "general.members"}} + + {{t "general.subgroups"}} + + {{t "general.actions"}} +
{{truncate + (repeat (random 3 10) "ilios rocks") + 100 + }}{{random 1 9}}{{random 1 9}}
\ No newline at end of file diff --git a/packages/frontend/app/styles/components.scss b/packages/frontend/app/styles/components.scss index 0932bf3305..cae05daaa9 100644 --- a/packages/frontend/app/styles/components.scss +++ b/packages/frontend/app/styles/components.scss @@ -81,6 +81,7 @@ @import "components/learner-group/members"; @import "components/learner-groups/root"; +@import "components/learner-groups/loading"; @import "components/instructor-group/courses"; @import "components/instructor-group/header"; diff --git a/packages/frontend/tests/integration/components/learner-groups/loading-test.js b/packages/frontend/tests/integration/components/learner-groups/loading-test.js new file mode 100644 index 0000000000..ca14204e0c --- /dev/null +++ b/packages/frontend/tests/integration/components/learner-groups/loading-test.js @@ -0,0 +1,17 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'ember-qunit'; +import { setupIntl } from 'ember-intl/test-support'; +import { render } from '@ember/test-helpers'; +import { hbs } from 'ember-cli-htmlbars'; +import a11yAudit from 'ember-a11y-testing/test-support/audit'; + +module('Integration | Component | learner-groups/loading', function (hooks) { + setupRenderingTest(hooks); + setupIntl(hooks, 'en-us'); + + test('it renders', async function (assert) { + await render(hbs``); + assert.dom('tbody tr').exists({ count: 1 }); + await a11yAudit(this.element); + }); +}); From 40968072c8db35657c374ecdff68c787481e5fbe Mon Sep 17 00:00:00 2001 From: Michael Chadwick Date: Tue, 4 Jun 2024 13:50:47 -0700 Subject: [PATCH 4/9] switched learner group list to use loading template instead of pulse loader --- packages/frontend/app/components/learner-groups/root.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/frontend/app/components/learner-groups/root.hbs b/packages/frontend/app/components/learner-groups/root.hbs index 0f9a40e24a..87b6958cb9 100644 --- a/packages/frontend/app/components/learner-groups/root.hbs +++ b/packages/frontend/app/components/learner-groups/root.hbs @@ -122,7 +122,7 @@ @setSortBy={{@setSortBy}} /> {{else}} - + {{/if}} From 6ab5c0da499718e608f200343b494dbc60bae203 Mon Sep 17 00:00:00 2001 From: Michael Chadwick Date: Thu, 15 Aug 2024 09:34:28 -0700 Subject: [PATCH 5/9] added temp 2 row default for count for now --- packages/frontend/app/components/learner-groups/root.hbs | 2 +- packages/frontend/app/components/learner-groups/root.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/frontend/app/components/learner-groups/root.hbs b/packages/frontend/app/components/learner-groups/root.hbs index 87b6958cb9..7d03bfaef0 100644 --- a/packages/frontend/app/components/learner-groups/root.hbs +++ b/packages/frontend/app/components/learner-groups/root.hbs @@ -122,7 +122,7 @@ @setSortBy={{@setSortBy}} /> {{else}} - + {{/if}} diff --git a/packages/frontend/app/components/learner-groups/root.js b/packages/frontend/app/components/learner-groups/root.js index ae3cc4b73f..b1d3ef6ed5 100644 --- a/packages/frontend/app/components/learner-groups/root.js +++ b/packages/frontend/app/components/learner-groups/root.js @@ -155,6 +155,10 @@ export default class LearnerGroupsRootComponent extends Component { }); } + get countForSelectedCohort() { + return 2; + } + saveNewLearnerGroup = dropTask(async (title, fillWithCohort) => { const group = this.store.createRecord('learner-group', { title, From 31f8e887fbe43b8de1ce830e845af01c5ca3f894 Mon Sep 17 00:00:00 2001 From: Michael Chadwick Date: Thu, 15 Aug 2024 13:05:19 -0700 Subject: [PATCH 6/9] moved lg count to template from class --- packages/frontend/app/components/learner-groups/root.hbs | 2 +- packages/frontend/app/components/learner-groups/root.js | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/frontend/app/components/learner-groups/root.hbs b/packages/frontend/app/components/learner-groups/root.hbs index 7d03bfaef0..39c8b2599f 100644 --- a/packages/frontend/app/components/learner-groups/root.hbs +++ b/packages/frontend/app/components/learner-groups/root.hbs @@ -122,7 +122,7 @@ @setSortBy={{@setSortBy}} /> {{else}} - + {{/if}} diff --git a/packages/frontend/app/components/learner-groups/root.js b/packages/frontend/app/components/learner-groups/root.js index b1d3ef6ed5..ae3cc4b73f 100644 --- a/packages/frontend/app/components/learner-groups/root.js +++ b/packages/frontend/app/components/learner-groups/root.js @@ -155,10 +155,6 @@ export default class LearnerGroupsRootComponent extends Component { }); } - get countForSelectedCohort() { - return 2; - } - saveNewLearnerGroup = dropTask(async (title, fillWithCohort) => { const group = this.store.createRecord('learner-group', { title, From f75beba67e6abb1f08e5aec1fa0a14967007e08c Mon Sep 17 00:00:00 2001 From: Michael Chadwick Date: Fri, 16 Aug 2024 09:23:48 -0700 Subject: [PATCH 7/9] re-ordered list-groups test for consistency with IGs --- .../tests/acceptance/learnergroups-test.js | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/packages/frontend/tests/acceptance/learnergroups-test.js b/packages/frontend/tests/acceptance/learnergroups-test.js index 97e0bfe060..6acad96561 100644 --- a/packages/frontend/tests/acceptance/learnergroups-test.js +++ b/packages/frontend/tests/acceptance/learnergroups-test.js @@ -21,6 +21,47 @@ module('Acceptance | Learner Groups', function (hooks) { assert.strictEqual(currentRouteName(), 'learner-groups'); }); + test('list groups', async function (assert) { + assert.expect(8); + this.server.createList('user', 11); + const program = this.server.create('program', { school: this.school }); + const programYear = this.server.create('program-year', { program }); + const cohort = this.server.create('cohort', { programYear }); + const firstLearnerGroup = this.server.create('learner-group', { + cohort, + userIds: [2, 3, 4, 5, 6], + }); + this.server.create('learner-group', { + cohort, + }); + const firstChildGroup = this.server.create('learner-group', { + parent: firstLearnerGroup, + userIds: [7, 8], + }); + this.server.create('learner-group', { + parent: firstLearnerGroup, + userIds: [9, 10], + }); + this.server.create('learner-group', { + parent: firstChildGroup, + userIds: [11, 12], + }); + this.server.createList('offering', 2, { + learnerGroups: [firstLearnerGroup], + }); + + await page.visit(); + await percySnapshot(assert); + assert.strictEqual(page.headerTitle, 'Learner Groups (2)'); + assert.strictEqual(page.list.items.length, 2); + assert.strictEqual(page.list.items[0].title, 'learner group 0'); + assert.strictEqual(page.list.items[0].users, '5'); + assert.strictEqual(page.list.items[0].children, '2'); + assert.strictEqual(page.list.items[1].title, 'learner group 1'); + assert.strictEqual(page.list.items[1].users, '0'); + assert.strictEqual(page.list.items[1].children, '0'); + }); + test('single option filters', async function (assert) { assert.expect(6); const program = this.server.create('program', { school: this.school }); @@ -93,47 +134,6 @@ module('Acceptance | Learner Groups', function (hooks) { assert.strictEqual(page.list.items[0].title, 'learner group 1'); }); - test('list groups', async function (assert) { - assert.expect(8); - this.server.createList('user', 11); - const program = this.server.create('program', { school: this.school }); - const programYear = this.server.create('program-year', { program }); - const cohort = this.server.create('cohort', { programYear }); - const firstLearnerGroup = this.server.create('learner-group', { - cohort, - userIds: [2, 3, 4, 5, 6], - }); - this.server.create('learner-group', { - cohort, - }); - const firstChildGroup = this.server.create('learner-group', { - parent: firstLearnerGroup, - userIds: [7, 8], - }); - this.server.create('learner-group', { - parent: firstLearnerGroup, - userIds: [9, 10], - }); - this.server.create('learner-group', { - parent: firstChildGroup, - userIds: [11, 12], - }); - this.server.createList('offering', 2, { - learnerGroups: [firstLearnerGroup], - }); - - await page.visit(); - await percySnapshot(assert); - assert.strictEqual(page.headerTitle, 'Learner Groups (2)'); - assert.strictEqual(page.list.items.length, 2); - assert.strictEqual(page.list.items[0].title, 'learner group 0'); - assert.strictEqual(page.list.items[0].users, '5'); - assert.strictEqual(page.list.items[0].children, '2'); - assert.strictEqual(page.list.items[1].title, 'learner group 1'); - assert.strictEqual(page.list.items[1].users, '0'); - assert.strictEqual(page.list.items[1].children, '0'); - }); - test('filters by title', async function (assert) { const program = this.server.create('program', { school: this.school }); const programYear = this.server.create('program-year', { program }); From 6e8510aa30966b0fbd6bad848e0be7a80e3c3832 Mon Sep 17 00:00:00 2001 From: Michael Chadwick Date: Fri, 16 Aug 2024 09:24:31 -0700 Subject: [PATCH 8/9] removed unnecessary assert.expect() --- packages/frontend/tests/acceptance/learnergroups-test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/frontend/tests/acceptance/learnergroups-test.js b/packages/frontend/tests/acceptance/learnergroups-test.js index 6acad96561..bdb92c68ba 100644 --- a/packages/frontend/tests/acceptance/learnergroups-test.js +++ b/packages/frontend/tests/acceptance/learnergroups-test.js @@ -16,7 +16,6 @@ module('Acceptance | Learner Groups', function (hooks) { }); test('visiting /learnergroups', async function (assert) { - assert.expect(1); await page.visit(); assert.strictEqual(currentRouteName(), 'learner-groups'); }); From 58b77fe77d8a42d5d900b14bcb3b22f150aa652c Mon Sep 17 00:00:00 2001 From: Michael Chadwick Date: Fri, 16 Aug 2024 09:39:52 -0700 Subject: [PATCH 9/9] fixed loading test --- packages/frontend/app/components/learner-groups/root.hbs | 2 +- .../integration/components/learner-groups/loading-test.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/frontend/app/components/learner-groups/root.hbs b/packages/frontend/app/components/learner-groups/root.hbs index 39c8b2599f..c1f7a2c66c 100644 --- a/packages/frontend/app/components/learner-groups/root.hbs +++ b/packages/frontend/app/components/learner-groups/root.hbs @@ -122,7 +122,7 @@ @setSortBy={{@setSortBy}} /> {{else}} - + {{/if}} diff --git a/packages/frontend/tests/integration/components/learner-groups/loading-test.js b/packages/frontend/tests/integration/components/learner-groups/loading-test.js index ca14204e0c..416012d00b 100644 --- a/packages/frontend/tests/integration/components/learner-groups/loading-test.js +++ b/packages/frontend/tests/integration/components/learner-groups/loading-test.js @@ -10,8 +10,8 @@ module('Integration | Component | learner-groups/loading', function (hooks) { setupIntl(hooks, 'en-us'); test('it renders', async function (assert) { - await render(hbs``); - assert.dom('tbody tr').exists({ count: 1 }); + await render(hbs``); + assert.dom('tbody tr').exists({ count: 2 }); await a11yAudit(this.element); }); });