Skip to content

Commit

Permalink
Merge branch 'main' into snyk-upgrade-c977d5ac5809b59b77a95133c0541f46
Browse files Browse the repository at this point in the history
  • Loading branch information
githubjimmeicatt authored Nov 18, 2024
2 parents 5f1879b + 2cf6d0a commit 94b8d4c
Show file tree
Hide file tree
Showing 75 changed files with 3,201 additions and 1,608 deletions.
1 change: 0 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
**/.dockerignore
**/.env.local
**/.env.local.example
**/.git
**/.github
**/.gitignore
**/dist
Expand Down
9 changes: 6 additions & 3 deletions Kiss.Bff.Test/AuthorizationCheckTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
using Kiss.Bff.Beheer.Verwerking;
using Kiss.Bff.Intern.Links.Features;
using Kiss.Bff.Intern.Gespreksresultaten.Features;
using Kiss.Bff.Extern.ZaakGerichtWerken.Contactmomenten;
using Kiss.Bff.Intern.Seed.Features;
using Kiss.Bff.Intern.ContactmomentDetails.Features;

namespace Kiss.Bff.Test
{
Expand All @@ -41,7 +42,7 @@ public static void ClassCleanup()
s_factory?.Dispose();
}

public static IEnumerable<object[]> GetControllersMethodsWithDefaultAuthorizeAttributes()
public static IEnumerable<object[]> GetControllersMethodsWithRedactiePolicyAuthorizeAttribute()
{
// Define the controllers and methods to test here
var controllersWithMethodsToTest = new List<(Type controllerType, string methodName, Type[] parameterTypes)>
Expand All @@ -55,6 +56,8 @@ public static IEnumerable<object[]> GetControllersMethodsWithDefaultAuthorizeAtt
(typeof(SkillsController), "PutSkill", new[] { typeof(int), typeof(SkillPutModel), typeof(CancellationToken) }),
(typeof(SkillsController), "PostSkill", new[] { typeof(SkillPostModel), typeof(CancellationToken) }),
(typeof(GetVerwerkingsLogs), "Get", new Type[0]),
(typeof(SeedController), "SeedStart", new Type[0]),
(typeof(SeedController), "SeedCheck", new Type[0]),
// Add more controller, method, and parameter combinations as needed
};

Expand All @@ -79,7 +82,7 @@ public async Task CallingEnpointsWithoutCredetialsShouldResultInAUnauthorizedRes
}

[DataTestMethod]
[DynamicData(nameof(GetControllersMethodsWithDefaultAuthorizeAttributes), DynamicDataSourceType.Method)]
[DynamicData(nameof(GetControllersMethodsWithRedactiePolicyAuthorizeAttribute), DynamicDataSourceType.Method)]
public void TestAuthorizeAttribute(Type controllerType, string methodName, Type[] parameterTypes)
{
// Manually create an instance of the controller
Expand Down
6 changes: 3 additions & 3 deletions Kiss.Bff.Test/GetFaqTests.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Kiss.Bff.Beheer.Data;
using Kiss.Bff.Beheer.Faq;
using Kiss.Bff.ZaakGerichtWerken.Contactmomenten;
using Kiss.Bff.Intern.ContactmomentDetails.Data.Entities;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
Expand Down Expand Up @@ -31,13 +31,13 @@ public async Task Get_ReturnsTopQuestions()
// Arrange
var controller = new GetFaq(dbContext);

var testData = new List<ContactmomentDetailsModel>();
var testData = new List<ContactmomentDetails>();
var topQuestionsCount = 10;

// Add 500 questions
for (int i = 1; i <= 500; i++)
{
testData.Add(new ContactmomentDetailsModel
testData.Add(new ContactmomentDetails
{
Id = i.ToString(),
Vraag = $"Question {i}",
Expand Down
29 changes: 6 additions & 23 deletions Kiss.Bff.Test/ReadContactmomentenDetailsTests.cs
Original file line number Diff line number Diff line change
@@ -1,35 +1,18 @@
using System;
using System.Linq.Expressions;
using System.Security.Claims;
using Kiss.Bff.Beheer.Data;
using Kiss.Bff.ZaakGerichtWerken.Contactmomenten;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Kiss.Bff.Beheer.Data;
using Kiss.Bff.Intern.ContactmomentDetails.Data.Entities;
using Kiss.Bff.Intern.ContactmomentDetails.Features;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;

namespace Kiss.Bff.Test
{
[TestClass]
public class ReadContactmomentenDetailsTests : TestHelper
{
private IServiceProvider? _serviceProvider;

[TestInitialize]
public void Initialize()
{
InitializeDatabase();
SeedTestData();

var services = new ServiceCollection();
var user = new ClaimsPrincipal(new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.NameIdentifier, "testuser"),
new Claim(ClaimTypes.Role, Policies.RedactiePolicy)
}));
services.AddSingleton<IHttpContextAccessor>(_ => new HttpContextAccessor { HttpContext = new DefaultHttpContext { User = user } });
_serviceProvider = services.BuildServiceProvider();
}

[TestCleanup]
Expand All @@ -43,7 +26,7 @@ public void Cleanup()
private void SeedTestData()
{
using var dbContext = new BeheerDbContext(_dbContextOptions);
var contactmoment1 = new ContactmomentDetailsModel
var contactmoment1 = new ContactmomentDetails
{
Id = "1",
Startdatum = DateTime.Now,
Expand All @@ -52,7 +35,7 @@ private void SeedTestData()
Vraag = "Question 1"
};

var contactmoment2 = new ContactmomentDetailsModel
var contactmoment2 = new ContactmomentDetails
{
Id = "2",
Startdatum = DateTime.Now,
Expand Down Expand Up @@ -80,7 +63,7 @@ public async Task Get_ValidId_ReturnsOk()
Assert.IsNotNull(result);
Assert.AreEqual(200, result.StatusCode);

var contactmoment = result.Value as ContactmomentDetailsModel;
var contactmoment = result.Value as ContactmomentDetailsDetailModel;
Assert.IsNotNull(contactmoment);
Assert.AreEqual(validId, contactmoment.Id);
}
Expand Down
35 changes: 25 additions & 10 deletions Kiss.Bff.Test/WriteContactmomentDetailsTests.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
using Kiss.Bff.Beheer.Data;
using Kiss.Bff.ZaakGerichtWerken.Contactmomenten;
using Kiss.Bff.Intern.ContactmomentDetails.Features;
using ContactmomentDetails = Kiss.Bff.Intern.ContactmomentDetails.Data.Entities.ContactmomentDetails;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Kiss.Bff.Intern.ContactmomentDetails.Data.Entities;

namespace Kiss.Bff.Test
{
Expand Down Expand Up @@ -36,7 +37,8 @@ public async Task Post_ValidModel_ReturnsOk()
Einddatum = DateTime.Now.AddHours(1),
Gespreksresultaat = "Result 1",
Vraag = "Question 1",
EmailadresKcm = "[email protected]" // User.GetEmail()
EmailadresKcm = "[email protected]", // User.GetEmail()
Bronnen = new[] {new ContactmomentDetailsBronModel { Soort = "Soort", Titel = "Titel", Url = "Url" } }
};

// Act
Expand All @@ -47,9 +49,12 @@ public async Task Post_ValidModel_ReturnsOk()
//Assert.AreEqual(200, result.StatusCode);

// Check if the model is added to the database
var addedModel = await dbContext.ContactMomentDetails.FirstOrDefaultAsync();
Assert.IsNotNull(addedModel);
Assert.AreEqual(validModel.Id, addedModel.Id);
var addedEntity = await dbContext.ContactMomentDetails.Include(x=> x.Bronnen).FirstOrDefaultAsync();
var addedBron = addedEntity?.Bronnen.FirstOrDefault();
Assert.IsNotNull(addedEntity);
Assert.IsNotNull(addedBron);
Assert.AreEqual(validModel.Id, addedEntity.Id);
Assert.AreEqual(validModel.Bronnen.First().Titel, addedBron.Titel);
}


Expand All @@ -58,14 +63,20 @@ public async Task Post_ModelWithExistingId_UpdatesExistingEntity()
{
// Arrange
using var dbContext = new BeheerDbContext(_dbContextOptions);
var existingEntity = new ContactmomentDetailsModel
var existingEntity = new ContactmomentDetails
{
Id = "1",
Startdatum = DateTime.Now,
Einddatum = DateTime.Now.AddHours(1),
Gespreksresultaat = "Result 1",
Vraag = "Question 1",
EmailadresKcm = "[email protected]"
EmailadresKcm = "[email protected]",
Bronnen = new List<ContactmomentDetailsBron> { new ContactmomentDetailsBron
{
Titel = "Titel1",
Soort = "Soort1",
Url = "Url1"
} }
};
dbContext.ContactMomentDetails.Add(existingEntity);
dbContext.SaveChanges();
Expand All @@ -78,7 +89,8 @@ public async Task Post_ModelWithExistingId_UpdatesExistingEntity()
Einddatum = DateTime.Now.AddHours(1),
Gespreksresultaat = "Result 2",
Vraag = "Question 2",
EmailadresKcm = "[email protected]"
EmailadresKcm = "[email protected]",
Bronnen = new[] {new ContactmomentDetailsBronModel { Soort = "Soort2", Url = "Url2", Titel = "Titel2" } }
};

// Act
Expand All @@ -89,9 +101,12 @@ public async Task Post_ModelWithExistingId_UpdatesExistingEntity()
Assert.AreEqual(200, result.StatusCode);

// Check if the entity was updated in the database
var updatedEntity = await dbContext.ContactMomentDetails.FindAsync(model.Id);
var updatedEntity = await dbContext.ContactMomentDetails.Include(x=> x.Bronnen).FirstOrDefaultAsync(x=> x.Id == model.Id);
var updatedBron = updatedEntity?.Bronnen?.FirstOrDefault();
Assert.IsNotNull(updatedEntity);
Assert.IsNotNull(updatedBron);
Assert.AreEqual(model.Gespreksresultaat, updatedEntity.Gespreksresultaat);
Assert.AreEqual(model.Bronnen.First().Titel, updatedBron.Titel);
}
}
}
Expand Down
52 changes: 0 additions & 52 deletions Kiss.Bff.Test/ZaakGerichtWerkenUnitTests.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using Kiss.Bff.Beheer.Data;
using Kiss.Bff.ZaakGerichtWerken;
using Kiss.Bff.ZaakGerichtWerken.Contactmomenten;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
using Moq;

namespace Kiss.Bff.Test
{
Expand Down Expand Up @@ -86,51 +80,5 @@ public void GenerateToken_ReturnsValidToken()
var principal = tokenHandler.ValidateToken(token, validationParameters, out _);
Assert.IsNotNull(principal);
}

[TestMethod]
public async Task Post_AddsOrUpdatesContactmomentToDatabase()
{
// Arrange
var cancellationToken = CancellationToken.None;
var model = new ContactmomentDetailsModel
{
Id = "1",
Startdatum = DateTimeOffset.Now,
Einddatum = DateTimeOffset.Now.AddDays(1),
Gespreksresultaat = "Success",
Vraag = "Question",
SpecifiekeVraag = "Topic",
EmailadresKcm = "[email protected]"
};
var dbContextMock = new Mock<BeheerDbContext>(_dbContextOptions) { CallBase = true };
dbContextMock.Setup(db => db.SaveChangesAsync(cancellationToken)).Returns(Task.FromResult(1));

var userClaims = new[]
{
new Claim(ClaimTypes.Email, "[email protected]")
};
var user = new ClaimsPrincipal(new ClaimsIdentity(userClaims));
var controller = new ContactmomentDetailsToevoegen(dbContextMock.Object)
{
ControllerContext = new ControllerContext
{
HttpContext = new DefaultHttpContext
{
User = user
}
}
};


// Act
var result = await controller.Post(model, cancellationToken);

// Assert
dbContextMock.Verify(db => db.AddAsync(model, cancellationToken), Times.Once);
dbContextMock.Verify(db => db.SaveChangesAsync(cancellationToken), Times.Once);
Assert.IsInstanceOfType(result, typeof(OkResult));
}


}
}
2 changes: 1 addition & 1 deletion Kiss.Bff/Config/AuthenticationSetup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ public static IServiceCollection AddKissAuth(this IServiceCollection services, A
{
ValidateIssuer = false,
ValidateAudience = false,
ValidateLifetime = false,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(authOptions.JwtTokenAuthenticationSecret))
};
Expand Down
11 changes: 6 additions & 5 deletions Kiss.Bff/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ RUN addgroup --group kiss --gid 2000 \
"kiss"
RUN chown kiss:kiss /app

FROM mcr.microsoft.com/dotnet/sdk:6.0 as dotnetbuild
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS dotnetbuild
WORKDIR /src
COPY ["Kiss.Bff/Kiss.Bff.csproj", "Kiss.Bff/"]
RUN dotnet restore "Kiss.Bff/Kiss.Bff.csproj"
COPY .git .git
COPY Kiss.Bff Kiss.Bff
WORKDIR "/src/Kiss.Bff"
RUN dotnet build "Kiss.Bff.csproj" -c Release --no-restore -o /app/build

FROM dotnetbuild as dotnettest
FROM dotnetbuild AS dotnettest
WORKDIR /src
COPY ["Kiss.Bff.Test/Kiss.Bff.Test.csproj", "Kiss.Bff.Test/"]
RUN dotnet restore "Kiss.Bff.Test/Kiss.Bff.Test.csproj"
Expand All @@ -34,13 +35,13 @@ COPY package*.json .
RUN npm ci
COPY . .

FROM frontend as frontendtest
FROM frontend AS frontendtest
RUN npm run test:unitci -- --reporter junit --outputFile /testresults/vitest-junit.xml

FROM frontend as frontendbuild
FROM frontend AS frontendbuild
RUN npm run build --if-present

FROM scratch as test
FROM scratch AS test
COPY --from=dotnettest /testresults/*.trx .
COPY --from=frontendtest /testresults/*.xml .

Expand Down

This file was deleted.

Loading

0 comments on commit 94b8d4c

Please sign in to comment.