Skip to content

Commit 11dee14

Browse files
committed
Add unit tests for Update method in OrganizationInviteLinksController
- Implemented multiple test cases for the Update method, covering scenarios such as successful updates, handling of non-existing invite links, and validation errors for allowed domains. - Ensured comprehensive coverage of the Update functionality to validate correct behavior and response models in various conditions.
1 parent 900128a commit 11dee14

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

test/Api.Test/AdminConsole/Controllers/OrganizationInviteLinksControllerTests.cs

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,4 +144,75 @@ public async Task Create_WithValidationError_Returns400(
144144
var badRequestResult = Assert.IsType<BadRequest<Bit.Core.Models.Api.ErrorResponseModel>>(result);
145145
Assert.NotNull(badRequestResult.Value);
146146
}
147+
148+
[Theory, BitAutoData]
149+
public async Task Update_WithValidInput_ReturnsOk(
150+
Guid orgId,
151+
OrganizationInviteLink inviteLink,
152+
SutProvider<OrganizationInviteLinksController> sutProvider)
153+
{
154+
inviteLink.OrganizationId = orgId;
155+
inviteLink.AllowedDomains = "[\"acme.com\"]";
156+
157+
var model = new UpdateOrganizationInviteLinkRequestModel
158+
{
159+
AllowedDomains = ["acme.com"],
160+
};
161+
162+
sutProvider.GetDependency<IUpdateOrganizationInviteLinkCommand>()
163+
.UpdateAsync(Arg.Any<UpdateOrganizationInviteLinkRequest>())
164+
.Returns(new CommandResult<OrganizationInviteLink>(inviteLink));
165+
166+
var result = await sutProvider.Sut.Update(orgId, model);
167+
168+
var okResult = Assert.IsType<Ok<OrganizationInviteLinkResponseModel>>(result);
169+
Assert.NotNull(okResult.Value);
170+
Assert.Equal(inviteLink.Id, okResult.Value.Id);
171+
Assert.Equal(orgId, okResult.Value.OrganizationId);
172+
173+
await sutProvider.GetDependency<IUpdateOrganizationInviteLinkCommand>()
174+
.Received(1)
175+
.UpdateAsync(Arg.Is<UpdateOrganizationInviteLinkRequest>(r =>
176+
r.OrganizationId == orgId));
177+
}
178+
179+
[Theory, BitAutoData]
180+
public async Task Update_WhenNoLinkExists_ReturnsNotFound(
181+
Guid orgId,
182+
SutProvider<OrganizationInviteLinksController> sutProvider)
183+
{
184+
var model = new UpdateOrganizationInviteLinkRequestModel
185+
{
186+
AllowedDomains = ["acme.com"],
187+
};
188+
189+
sutProvider.GetDependency<IUpdateOrganizationInviteLinkCommand>()
190+
.UpdateAsync(Arg.Any<UpdateOrganizationInviteLinkRequest>())
191+
.Returns(new CommandResult<OrganizationInviteLink>(new InviteLinkNotFound()));
192+
193+
var result = await sutProvider.Sut.Update(orgId, model);
194+
195+
var notFoundResult = Assert.IsType<NotFound<Bit.Core.Models.Api.ErrorResponseModel>>(result);
196+
Assert.NotNull(notFoundResult.Value);
197+
}
198+
199+
[Theory, BitAutoData]
200+
public async Task Update_WithValidationError_Returns400(
201+
Guid orgId,
202+
SutProvider<OrganizationInviteLinksController> sutProvider)
203+
{
204+
var model = new UpdateOrganizationInviteLinkRequestModel
205+
{
206+
AllowedDomains = [],
207+
};
208+
209+
sutProvider.GetDependency<IUpdateOrganizationInviteLinkCommand>()
210+
.UpdateAsync(Arg.Any<UpdateOrganizationInviteLinkRequest>())
211+
.Returns(new CommandResult<OrganizationInviteLink>(new InviteLinkDomainsRequired()));
212+
213+
var result = await sutProvider.Sut.Update(orgId, model);
214+
215+
var badRequestResult = Assert.IsType<BadRequest<Bit.Core.Models.Api.ErrorResponseModel>>(result);
216+
Assert.NotNull(badRequestResult.Value);
217+
}
147218
}

0 commit comments

Comments
 (0)