Merge pull request #2707 from GSA/2636-user-story-improve-folder-permissions-options

Improve folder permissions on invite team member page:
This commit is contained in:
ccostino
2025-06-26 15:14:13 -04:00
committed by GitHub
4 changed files with 154 additions and 6 deletions

View File

@@ -355,7 +355,6 @@ describe('Collapsible fieldset', () => {
test("is added when the fieldset is expanded", () => {
expect(formGroup.querySelector('.selection-footer').classList.contains('js-stick-at-bottom-when-scrolling')).toBe(true);
expect(window.GOVUK.stickAtBottomWhenScrolling.recalculate.mock.calls.length).toBe(1);
});
@@ -365,7 +364,6 @@ describe('Collapsible fieldset', () => {
helpers.triggerEvent(formGroup.querySelector('.govuk-button'), 'click');
expect(formGroup.querySelector('.selection-footer').classList.contains('js-stick-at-bottom-when-scrolling')).toBe(false);
expect(window.GOVUK.stickAtBottomWhenScrolling.recalculate.mock.calls.length).toBe(2);
});
@@ -373,6 +371,86 @@ describe('Collapsible fieldset', () => {
});
describe("check/uncheck all functionality", () => {
beforeEach(() => {
window.GOVUK.modules.start();
helpers.triggerEvent(formGroup.querySelector('.govuk-button'), 'click');
});
test("adds a 'Select all' button when checkboxes are shown", () => {
const toggleButton = document.querySelector('.usa-button--small');
expect(toggleButton).not.toBeNull();
expect(toggleButton.textContent).toEqual('Select all');
});
test("clicking 'Select all' checks all checkboxes", () => {
const toggleButton = document.querySelector('.usa-button--small');
expect(checkboxes[0].checked).toBe(false);
expect(checkboxes[9].checked).toBe(false);
helpers.triggerEvent(toggleButton, 'click');
expect(checkboxes[0].checked).toBe(true);
expect(checkboxes[9].checked).toBe(true);
});
test("button changes to 'Deselect all' when all are checked", () => {
const toggleButton = document.querySelector('.usa-button--small');
helpers.triggerEvent(toggleButton, 'click');
expect(toggleButton.textContent).toEqual('Deselect all');
});
test("clicking 'Deselect all' unchecks all checkboxes", () => {
const toggleButton = document.querySelector('.usa-button--small');
helpers.triggerEvent(toggleButton, 'click');
expect(checkboxes[0].checked).toBe(true);
helpers.triggerEvent(toggleButton, 'click');
expect(checkboxes[0].checked).toBe(false);
expect(checkboxes[9].checked).toBe(false);
});
test("button is hidden when fieldset is collapsed", () => {
const toggleButton = document.querySelector('.usa-button--small');
const doneButton = formGroup.querySelector('.govuk-button');
expect(toggleButton.parentElement.style.display).not.toEqual('none');
helpers.triggerEvent(doneButton, 'click');
expect(toggleButton.parentElement.style.display).toEqual('none');
});
});
describe("toggle button visibility on re-expansion", () => {
test("shows toggle button again when fieldset is re-opened", () => {
window.GOVUK.modules.start();
helpers.triggerEvent(formGroup.querySelector('.govuk-button'), 'click');
const toggleButton = document.querySelector('.usa-button--small');
expect(toggleButton).not.toBeNull();
helpers.triggerEvent(formGroup.querySelector('.govuk-button'), 'click');
helpers.triggerEvent(formGroup.querySelector('.govuk-button'), 'click');
const toggleButtonAfter = document.querySelector('.usa-button--small');
expect(toggleButtonAfter).not.toBeNull();
expect(toggleButtonAfter.parentElement.style.display).not.toEqual('none');
});
});
describe("when the selection changes", () => {
const showCheckboxes = () => {