You can only resend an invite for a pending invite
This commit is contained in:
parent
a9199bc28d
commit
679ec187a5
@ -14,6 +14,7 @@ from atst.forms.dd_254 import DD254Form
|
||||
from atst.forms.ko_review import KOReviewForm
|
||||
from atst.forms.officers import EditTaskOrderOfficersForm
|
||||
from atst.models.task_order import Status as TaskOrderStatus
|
||||
from atst.models.invitation import Status as InvitationStatus
|
||||
from atst.utils.flash import formatted_flash as flash
|
||||
from atst.services.invitation import (
|
||||
update_officer_invitations,
|
||||
@ -130,7 +131,7 @@ def resend_invite(portfolio_id, task_order_id, form=None):
|
||||
|
||||
invitation = Invitations.lookup_by_portfolio_and_user(portfolio, officer)
|
||||
|
||||
if not invitation:
|
||||
if not invitation or (invitation.status is not InvitationStatus.PENDING):
|
||||
raise NotFoundError("invitation")
|
||||
|
||||
Invitations.resend(g.current_user, portfolio.id, invitation.token)
|
||||
|
@ -644,3 +644,40 @@ def test_resend_invite_when_ko(app, client, user_session, portfolio, user):
|
||||
== response.headers["Location"]
|
||||
)
|
||||
assert len(queue.get_queue()) == queue_length + 1
|
||||
|
||||
|
||||
def test_resend_invite_when_not_pending(app, client, user_session, portfolio, user):
|
||||
queue_length = len(queue.get_queue())
|
||||
|
||||
task_order = TaskOrderFactory.create(
|
||||
portfolio=portfolio, contracting_officer=user, ko_invite=True
|
||||
)
|
||||
|
||||
portfolio_role = PortfolioRoleFactory.create(
|
||||
role=Roles.get("owner"),
|
||||
portfolio=portfolio,
|
||||
user=user,
|
||||
status=PortfolioStatus.ACTIVE,
|
||||
)
|
||||
|
||||
original_invitation = Invitations.create(
|
||||
inviter=user, portfolio_role=portfolio_role, email=user.email
|
||||
)
|
||||
|
||||
Invitations.accept(user=user, token=original_invitation.token)
|
||||
|
||||
user_session(user)
|
||||
|
||||
response = client.post(
|
||||
url_for(
|
||||
"portfolios.resend_invite",
|
||||
portfolio_id=portfolio.id,
|
||||
task_order_id=task_order.id,
|
||||
_external=True,
|
||||
),
|
||||
data={"invite_type": "ko_invite"},
|
||||
)
|
||||
|
||||
assert original_invitation.status == InvitationStatus.ACCEPTED
|
||||
assert response.status_code == 404
|
||||
assert len(queue.get_queue()) == queue_length
|
||||
|
Loading…
x
Reference in New Issue
Block a user