mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-25 20:18:38 +02:00
fix tests + cleanup
This commit is contained in:
parent
d52a44a744
commit
d2149484c9
4 changed files with 17 additions and 24 deletions
|
@ -98,28 +98,21 @@ export function initAddNewMemberPageListeners() {
|
||||||
|
|
||||||
// Get all permission sections (divs with h3 and radio inputs)
|
// Get all permission sections (divs with h3 and radio inputs)
|
||||||
const permissionSections = document.querySelectorAll(`#${permission_details_div_id} > h3`);
|
const permissionSections = document.querySelectorAll(`#${permission_details_div_id} > h3`);
|
||||||
console.log(`what is the id? ${permission_details_div_id}`)
|
|
||||||
console.log(`what is the permissionSections? ${permissionSections}`)
|
|
||||||
|
|
||||||
permissionSections.forEach(section => {
|
permissionSections.forEach(section => {
|
||||||
console.log(`what is the section? ${section}`)
|
|
||||||
// Find the <h3> element text
|
// Find the <h3> element text
|
||||||
const sectionTitle = section.textContent;
|
const sectionTitle = section.textContent;
|
||||||
|
|
||||||
// Find the associated radio buttons container (next fieldset)
|
// Find the associated radio buttons container (next fieldset)
|
||||||
const fieldset = section.nextElementSibling;
|
const fieldset = section.nextElementSibling;
|
||||||
console.log(`what is the fieldset? ${fieldset}`)
|
|
||||||
if (fieldset && fieldset.tagName.toLowerCase() === 'fieldset') {
|
if (fieldset && fieldset.tagName.toLowerCase() === 'fieldset') {
|
||||||
// Get the selected radio button within this fieldset
|
// Get the selected radio button within this fieldset
|
||||||
const selectedRadio = fieldset.querySelector('input[type="radio"]:checked');
|
const selectedRadio = fieldset.querySelector('input[type="radio"]:checked');
|
||||||
console.log(`what is the selectedRadio? ${selectedRadio.id}`)
|
|
||||||
// If a radio button is selected, get its label text
|
// If a radio button is selected, get its label text
|
||||||
let selectedPermission = "No permission selected";
|
let selectedPermission = "No permission selected";
|
||||||
if (selectedRadio) {
|
if (selectedRadio) {
|
||||||
const label = fieldset.querySelector(`label[for="${selectedRadio.id}"]`);
|
const label = fieldset.querySelector(`label[for="${selectedRadio.id}"]`);
|
||||||
selectedPermission = label ? label.textContent : "No permission selected";
|
selectedPermission = label ? label.textContent : "No permission selected";
|
||||||
}
|
}
|
||||||
console.log(`what is the selectedPermission? ${selectedPermission}`)
|
|
||||||
|
|
||||||
// Create new elements for the modal content
|
// Create new elements for the modal content
|
||||||
const titleElement = document.createElement("h4");
|
const titleElement = document.createElement("h4");
|
||||||
|
@ -149,7 +142,7 @@ export function initAddNewMemberPageListeners() {
|
||||||
|
|
||||||
// Get selected radio button for access level
|
// Get selected radio button for access level
|
||||||
let selectedAccess = document.querySelector('input[name="role"]:checked');
|
let selectedAccess = document.querySelector('input[name="role"]:checked');
|
||||||
console.log(`selectedAccess" ${selectedAccess} vs value ${selectedAccess.value}`)
|
|
||||||
// Set the selected permission text to 'Basic' or 'Admin' (the value of the selected radio button)
|
// Set the selected permission text to 'Basic' or 'Admin' (the value of the selected radio button)
|
||||||
// This value does not have the first letter capitalized so let's capitalize it
|
// This value does not have the first letter capitalized so let's capitalize it
|
||||||
let accessText = "No access level selected";
|
let accessText = "No access level selected";
|
||||||
|
|
|
@ -39,7 +39,6 @@ export function hookupYesNoListener(radioButtonName, elementIdToShowIfYes, eleme
|
||||||
export function hookupRadioTogglerListener(radioButtonName, valueToElementMap) {
|
export function hookupRadioTogglerListener(radioButtonName, valueToElementMap) {
|
||||||
// Get the radio buttons
|
// Get the radio buttons
|
||||||
let radioButtons = document.querySelectorAll(`input[name="${radioButtonName}"]`);
|
let radioButtons = document.querySelectorAll(`input[name="${radioButtonName}"]`);
|
||||||
console.log(`what are the radio buttons? ${radioButtons} vs name: ${radioButtonName}`)
|
|
||||||
|
|
||||||
// Extract the list of all element IDs from the valueToElementMap
|
// Extract the list of all element IDs from the valueToElementMap
|
||||||
let allElementIds = Object.values(valueToElementMap);
|
let allElementIds = Object.values(valueToElementMap);
|
||||||
|
@ -50,12 +49,10 @@ export function hookupRadioTogglerListener(radioButtonName, valueToElementMap) {
|
||||||
let selectedValue = radioButtonChecked ? radioButtonChecked.value : null;
|
let selectedValue = radioButtonChecked ? radioButtonChecked.value : null;
|
||||||
|
|
||||||
// Hide all elements by default
|
// Hide all elements by default
|
||||||
console.log(`what are the elementids? ${allElementIds}`)
|
|
||||||
allElementIds.forEach(function (elementId) {
|
allElementIds.forEach(function (elementId) {
|
||||||
let element = document.getElementById(elementId);
|
let element = document.getElementById(elementId);
|
||||||
console.log(`id? ${elementId} what is the element? ${element}`)
|
|
||||||
if (element) {
|
if (element) {
|
||||||
hideElement(element);
|
hideElement(element);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -124,6 +124,7 @@ class BasePortfolioMemberForm(forms.Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
domain_request_permission_admin = forms.ChoiceField(
|
domain_request_permission_admin = forms.ChoiceField(
|
||||||
|
# nosec B308 - required_star is a hardcoded HTML string
|
||||||
label=mark_safe(f"Select permission {required_star}"),
|
label=mark_safe(f"Select permission {required_star}"),
|
||||||
choices=[
|
choices=[
|
||||||
(UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value, "View all requests"),
|
(UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value, "View all requests"),
|
||||||
|
@ -137,6 +138,7 @@ class BasePortfolioMemberForm(forms.Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
member_permission_admin = forms.ChoiceField(
|
member_permission_admin = forms.ChoiceField(
|
||||||
|
# nosec B308 - required_star is a hardcoded HTML string
|
||||||
label=mark_safe(f"Select permission {required_star}"),
|
label=mark_safe(f"Select permission {required_star}"),
|
||||||
choices=[
|
choices=[
|
||||||
(UserPortfolioPermissionChoices.VIEW_MEMBERS.value, "View all members"),
|
(UserPortfolioPermissionChoices.VIEW_MEMBERS.value, "View all members"),
|
||||||
|
@ -150,6 +152,7 @@ class BasePortfolioMemberForm(forms.Form):
|
||||||
)
|
)
|
||||||
|
|
||||||
domain_request_permission_member = forms.ChoiceField(
|
domain_request_permission_member = forms.ChoiceField(
|
||||||
|
# nosec B308 - required_star is a hardcoded HTML string
|
||||||
label=mark_safe(f"Select permission {required_star}"),
|
label=mark_safe(f"Select permission {required_star}"),
|
||||||
choices=[
|
choices=[
|
||||||
(UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value, "View all requests"),
|
(UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value, "View all requests"),
|
||||||
|
|
|
@ -2568,17 +2568,19 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
|
||||||
reverse("new-member"),
|
reverse("new-member"),
|
||||||
{
|
{
|
||||||
"role": "organization_member",
|
"role": "organization_member",
|
||||||
"basic_org_domain_request_permissions": "view_only",
|
"domain_request_permission_member": "view_all_requests",
|
||||||
"email": self.new_member_email,
|
"email": self.new_member_email,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
# Ensure the final submission is successful
|
# Ensure the final submission is successful
|
||||||
self.assertEqual(final_response.status_code, 302) # redirects after success
|
self.assertEqual(final_response.status_code, 302) # redirects after success
|
||||||
|
|
||||||
# Validate Database Changes
|
# Validate Database Changes
|
||||||
portfolio_invite = PortfolioInvitation.objects.filter(
|
portfolio_invite = PortfolioInvitation.objects.filter(
|
||||||
email=self.new_member_email, portfolio=self.portfolio
|
email=self.new_member_email,
|
||||||
|
portfolio=self.portfolio,
|
||||||
|
roles__exact=[UserPortfolioRoleChoices.ORGANIZATION_MEMBER],
|
||||||
|
additional_permissions__exact=[UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS],
|
||||||
).first()
|
).first()
|
||||||
self.assertIsNotNone(portfolio_invite)
|
self.assertIsNotNone(portfolio_invite)
|
||||||
self.assertEqual(portfolio_invite.email, self.new_member_email)
|
self.assertEqual(portfolio_invite.email, self.new_member_email)
|
||||||
|
@ -2601,14 +2603,13 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
|
||||||
reverse("new-member"),
|
reverse("new-member"),
|
||||||
{
|
{
|
||||||
"role": "organization_member",
|
"role": "organization_member",
|
||||||
"basic_org_domain_request_permissions": "view_only",
|
"domain_request_permission_member": "view_all_requests",
|
||||||
"email": self.invited_member_email,
|
"email": self.invited_member_email,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
self.assertEqual(response.status_code, 302) # Redirects
|
# Unsucessful form submissions return the same page with a 200
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
# TODO: verify messages
|
self.assertEqual(response.context["form"].errors["email"][0], "An invitation already exists for this user.")
|
||||||
|
|
||||||
# Validate Database has not changed
|
# Validate Database has not changed
|
||||||
invite_count_after = PortfolioInvitation.objects.count()
|
invite_count_after = PortfolioInvitation.objects.count()
|
||||||
self.assertEqual(invite_count_after, invite_count_before)
|
self.assertEqual(invite_count_after, invite_count_before)
|
||||||
|
@ -2631,13 +2632,12 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
|
||||||
reverse("new-member"),
|
reverse("new-member"),
|
||||||
{
|
{
|
||||||
"role": "organization_member",
|
"role": "organization_member",
|
||||||
"basic_org_domain_request_permissions": "view_only",
|
"domain_request_permissions_member": "view_all_requests",
|
||||||
"email": self.user.email,
|
"email": self.user.email,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
self.assertEqual(response.status_code, 302) # Redirects
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertEqual(response.context["form"].errors["email"][0], "User is already a member of this portfolio.")
|
||||||
# TODO: verify messages
|
|
||||||
|
|
||||||
# Validate Database has not changed
|
# Validate Database has not changed
|
||||||
invite_count_after = PortfolioInvitation.objects.count()
|
invite_count_after = PortfolioInvitation.objects.count()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue