open-nomad/ui/tests/acceptance/behaviors/page-size-select.js
2023-04-10 15:36:59 +00:00

53 lines
1.7 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
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, storedPageSize);
});
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-parent]', desiredPageSize);
assert.equal(window.localStorage.nomadPageSize, desiredPageSize);
assert.equal(pageObjectList.length, desiredPageSize);
assert.equal(pageObject.pageSizeSelect.selectedOption, desiredPageSize);
});
}