mirror of
https://github.com/kemko/nomad.git
synced 2026-01-10 20:35:42 +03:00
Factor page select tests into their own behavior
This commit is contained in:
42
ui/tests/acceptance/behaviors/page-size-select.js
Normal file
42
ui/tests/acceptance/behaviors/page-size-select.js
Normal file
@@ -0,0 +1,42 @@
|
||||
import { pluralize } from 'ember-inflector';
|
||||
import { test } from 'qunit';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
|
||||
export default function pageSizeSelect({ resourceName, pageObject, pageObjectList, setup }) {
|
||||
test(`the number of ${pluralize(
|
||||
resourceName
|
||||
)} is equal to the localStorage user setting for page size`, async function(assert) {
|
||||
const storedPageSize = 10;
|
||||
window.localStorage.nomadPageSize = storedPageSize;
|
||||
|
||||
await setup.call(this);
|
||||
|
||||
assert.equal(pageObjectList.length, storedPageSize);
|
||||
assert.equal(pageObject.pageSizeSelect.selectedOption, '10');
|
||||
});
|
||||
|
||||
test('when the page size user setting is unset, the default page size is 25', async function(assert) {
|
||||
await setup.call(this);
|
||||
|
||||
assert.equal(pageObjectList.length, pageObject.pageSize);
|
||||
assert.equal(pageObject.pageSizeSelect.selectedOption, pageObject.pageSize);
|
||||
});
|
||||
|
||||
test(`changing the page size updates the ${pluralize(
|
||||
resourceName
|
||||
)} list and also updates the user setting in localStorage`, async function(assert) {
|
||||
const desiredPageSize = 10;
|
||||
|
||||
await setup.call(this);
|
||||
|
||||
assert.equal(window.localStorage.nomadPageSize, null);
|
||||
assert.equal(pageObjectList.length, pageObject.pageSize);
|
||||
assert.equal(pageObject.pageSizeSelect.selectedOption, pageObject.pageSize);
|
||||
|
||||
await selectChoose('[data-test-page-size-select]', desiredPageSize);
|
||||
|
||||
assert.equal(window.localStorage.nomadPageSize, desiredPageSize);
|
||||
assert.equal(pageObjectList.length, desiredPageSize);
|
||||
assert.equal(pageObject.pageSizeSelect.selectedOption, desiredPageSize);
|
||||
});
|
||||
}
|
||||
@@ -2,7 +2,7 @@ import { currentURL } from '@ember/test-helpers';
|
||||
import { module, test } from 'qunit';
|
||||
import { setupApplicationTest } from 'ember-qunit';
|
||||
import { setupMirage } from 'ember-cli-mirage/test-support';
|
||||
import { selectChoose } from 'ember-power-select/test-support';
|
||||
import pageSizeSelect from './behaviors/page-size-select';
|
||||
import JobsList from 'nomad-ui/tests/pages/jobs/list';
|
||||
|
||||
let managementToken, clientToken;
|
||||
@@ -341,42 +341,14 @@ module('Acceptance | jobs list', function(hooks) {
|
||||
assert.equal(JobsList.jobs.length, 1, 'Only one job shown due to query param');
|
||||
});
|
||||
|
||||
test('the number of jobs shown is equal to the localStorage user setting for page size', async function(assert) {
|
||||
const storedPageSize = 10;
|
||||
window.localStorage.nomadPageSize = storedPageSize;
|
||||
|
||||
server.createList('job', JobsList.pageSize, { shallow: true, createAllocations: false });
|
||||
|
||||
await JobsList.visit();
|
||||
|
||||
assert.equal(JobsList.jobs.length, storedPageSize);
|
||||
assert.equal(JobsList.pageSizeSelect.selectedOption, '10');
|
||||
});
|
||||
|
||||
test('when the page size user setting is unset, the default page size is 25', async function(assert) {
|
||||
server.createList('job', JobsList.pageSize, { shallow: true, createAllocations: false });
|
||||
|
||||
await JobsList.visit();
|
||||
|
||||
assert.equal(JobsList.jobs.length, JobsList.pageSize);
|
||||
assert.equal(JobsList.pageSizeSelect.selectedOption, JobsList.pageSize);
|
||||
});
|
||||
|
||||
test('changing the page size updates the jobs list and also updates the user setting in localStorage', async function(assert) {
|
||||
const desiredPageSize = 10;
|
||||
server.createList('job', JobsList.pageSize, { shallow: true, createAllocations: false });
|
||||
|
||||
await JobsList.visit();
|
||||
|
||||
assert.equal(window.localStorage.nomadPageSize, null);
|
||||
assert.equal(JobsList.jobs.length, JobsList.pageSize);
|
||||
assert.equal(JobsList.pageSizeSelect.selectedOption, JobsList.pageSize);
|
||||
|
||||
await selectChoose('[data-test-page-size-select]', desiredPageSize);
|
||||
|
||||
assert.equal(window.localStorage.nomadPageSize, desiredPageSize);
|
||||
assert.equal(JobsList.jobs.length, desiredPageSize);
|
||||
assert.equal(JobsList.pageSizeSelect.selectedOption, desiredPageSize);
|
||||
pageSizeSelect({
|
||||
resourceName: 'job',
|
||||
pageObject: JobsList,
|
||||
pageObjectList: JobsList.jobs,
|
||||
async setup() {
|
||||
server.createList('job', JobsList.pageSize, { shallow: true, createAllocations: false });
|
||||
await JobsList.visit();
|
||||
},
|
||||
});
|
||||
|
||||
function testFacet(label, { facet, paramName, beforeEach, filter, expectedOptions }) {
|
||||
|
||||
Reference in New Issue
Block a user