fix tests + cleanup

This commit is contained in:
zandercymatics 2024-12-13 11:31:22 -07:00
parent d52a44a744
commit d2149484c9
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
4 changed files with 17 additions and 24 deletions

View file

@ -98,28 +98,21 @@ export function initAddNewMemberPageListeners() {
// Get all permission sections (divs with h3 and radio inputs)
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 => {
console.log(`what is the section? ${section}`)
// Find the <h3> element text
const sectionTitle = section.textContent;
// Find the associated radio buttons container (next fieldset)
const fieldset = section.nextElementSibling;
console.log(`what is the fieldset? ${fieldset}`)
if (fieldset && fieldset.tagName.toLowerCase() === 'fieldset') {
// Get the selected radio button within this fieldset
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
let selectedPermission = "No permission selected";
if (selectedRadio) {
const label = fieldset.querySelector(`label[for="${selectedRadio.id}"]`);
selectedPermission = label ? label.textContent : "No permission selected";
}
console.log(`what is the selectedPermission? ${selectedPermission}`)
// Create new elements for the modal content
const titleElement = document.createElement("h4");
@ -149,7 +142,7 @@ export function initAddNewMemberPageListeners() {
// Get selected radio button for access level
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)
// This value does not have the first letter capitalized so let's capitalize it
let accessText = "No access level selected";

View file

@ -39,7 +39,6 @@ export function hookupYesNoListener(radioButtonName, elementIdToShowIfYes, eleme
export function hookupRadioTogglerListener(radioButtonName, valueToElementMap) {
// Get the radio buttons
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
let allElementIds = Object.values(valueToElementMap);
@ -50,12 +49,10 @@ export function hookupRadioTogglerListener(radioButtonName, valueToElementMap) {
let selectedValue = radioButtonChecked ? radioButtonChecked.value : null;
// Hide all elements by default
console.log(`what are the elementids? ${allElementIds}`)
allElementIds.forEach(function (elementId) {
let element = document.getElementById(elementId);
console.log(`id? ${elementId} what is the element? ${element}`)
if (element) {
hideElement(element);
hideElement(element);
}
});

View file

@ -124,6 +124,7 @@ class BasePortfolioMemberForm(forms.Form):
)
domain_request_permission_admin = forms.ChoiceField(
# nosec B308 - required_star is a hardcoded HTML string
label=mark_safe(f"Select permission {required_star}"),
choices=[
(UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value, "View all requests"),
@ -137,6 +138,7 @@ class BasePortfolioMemberForm(forms.Form):
)
member_permission_admin = forms.ChoiceField(
# nosec B308 - required_star is a hardcoded HTML string
label=mark_safe(f"Select permission {required_star}"),
choices=[
(UserPortfolioPermissionChoices.VIEW_MEMBERS.value, "View all members"),
@ -150,6 +152,7 @@ class BasePortfolioMemberForm(forms.Form):
)
domain_request_permission_member = forms.ChoiceField(
# nosec B308 - required_star is a hardcoded HTML string
label=mark_safe(f"Select permission {required_star}"),
choices=[
(UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS.value, "View all requests"),

View file

@ -2568,17 +2568,19 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
reverse("new-member"),
{
"role": "organization_member",
"basic_org_domain_request_permissions": "view_only",
"domain_request_permission_member": "view_all_requests",
"email": self.new_member_email,
},
)
# Ensure the final submission is successful
self.assertEqual(final_response.status_code, 302) # redirects after success
# Validate Database Changes
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()
self.assertIsNotNone(portfolio_invite)
self.assertEqual(portfolio_invite.email, self.new_member_email)
@ -2601,14 +2603,13 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
reverse("new-member"),
{
"role": "organization_member",
"basic_org_domain_request_permissions": "view_only",
"domain_request_permission_member": "view_all_requests",
"email": self.invited_member_email,
},
)
self.assertEqual(response.status_code, 302) # Redirects
# TODO: verify messages
# Unsucessful form submissions return the same page with a 200
self.assertEqual(response.status_code, 200)
self.assertEqual(response.context["form"].errors["email"][0], "An invitation already exists for this user.")
# Validate Database has not changed
invite_count_after = PortfolioInvitation.objects.count()
self.assertEqual(invite_count_after, invite_count_before)
@ -2631,13 +2632,12 @@ class TestPortfolioInviteNewMemberView(TestWithUser, WebTest):
reverse("new-member"),
{
"role": "organization_member",
"basic_org_domain_request_permissions": "view_only",
"domain_request_permissions_member": "view_all_requests",
"email": self.user.email,
},
)
self.assertEqual(response.status_code, 302) # Redirects
# TODO: verify messages
self.assertEqual(response.status_code, 200)
self.assertEqual(response.context["form"].errors["email"][0], "User is already a member of this portfolio.")
# Validate Database has not changed
invite_count_after = PortfolioInvitation.objects.count()