test(bff): /beheer/catalogi/zaaktypen behind beheerder authorization (refs #130)
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
using System.Net;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Net.Http.Json;
|
||||
using Bff.Api;
|
||||
|
||||
namespace Bff.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// The beheer catalogus viewer (S-15a): reached only with a medewerker-realm token carrying the
|
||||
/// <c>beheerder</c> role. A missing token is 401; an authenticated medewerker without the role (e.g.
|
||||
/// a plain behandelaar) is 403; a beheerder gets the read-only list of published zaaktypen.
|
||||
/// </summary>
|
||||
public class BeheerEndpointTests
|
||||
{
|
||||
private static HttpRequestMessage Zaaktypen(string? bearer)
|
||||
{
|
||||
var request = new HttpRequestMessage(HttpMethod.Get, "/beheer/catalogi/zaaktypen");
|
||||
if (bearer is not null)
|
||||
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", bearer);
|
||||
return request;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Rejects_the_catalogus_without_a_token()
|
||||
{
|
||||
using var factory = new BffFactory();
|
||||
|
||||
var response = await factory.CreateClient().SendAsync(Zaaktypen(bearer: null));
|
||||
|
||||
Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Rejects_a_medewerker_without_the_beheerder_role()
|
||||
{
|
||||
using var factory = new BffFactory();
|
||||
|
||||
var response = await factory.CreateClient().SendAsync(Zaaktypen(TestTokens.Medewerker("behandelaar")));
|
||||
|
||||
Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Serves_the_published_zaaktypen_to_a_beheerder()
|
||||
{
|
||||
using var factory = new BffFactory();
|
||||
factory.Acl.Zaaktypen.Add(new BeheerZaaktype("BIG-REGISTRATIE", "BIG-registratie"));
|
||||
|
||||
var response = await factory.CreateClient().SendAsync(Zaaktypen(TestTokens.Medewerker("beheerder")));
|
||||
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
var items = await response.Content.ReadFromJsonAsync<List<BeheerZaaktype>>();
|
||||
var item = Assert.Single(items!);
|
||||
Assert.Equal("BIG-REGISTRATIE", item.Identificatie);
|
||||
Assert.Equal("BIG-registratie", item.Omschrijving);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user