Organize workspace: Frontend, Backend, and Tests in one repo

This commit is contained in:
2026-03-04 22:04:07 +00:00
parent 236780cf41
commit 0d517b198d
1719 changed files with 688496 additions and 449 deletions

View File

@@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.2" />
<PackageReference Include="FluentAssertions" Version="8.8.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
</ItemGroup>
<ItemGroup>
<Using Include="Xunit" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Seasoned.Backend\Seasoned.Backend.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,47 @@
using Moq;
using Xunit;
using FluentAssertions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using Seasoned.Backend.Controllers;
using Seasoned.Backend.Services;
using Seasoned.Backend.DTOs;
namespace Seasoned.Tests;
public class RecipeControllerTests
{
[Fact]
public async Task ParseRecipe_ReturnsOk_WhenImageIsValid()
{
// 1. Arrange: Create a "Fake" Service
var mockService = new Mock<IRecipeService>();
var fakeRecipe = new RecipeResponseDto { Title = "Test Recipe" };
mockService.Setup(s => s.ParseImageAsync(It.IsAny<IFormFile>()))
.ReturnsAsync(fakeRecipe);
var controller = new RecipeController(mockService.Object);
// Create a fake image file
var content = "fake image content";
var fileName = "test.jpg";
var ms = new MemoryStream();
var writer = new StreamWriter(ms);
writer.Write(content);
writer.Flush();
ms.Position = 0;
var mockFile = new FormFile(ms, 0, ms.Length, "id_from_form", fileName);
// 2. Act: Call the Controller
var result = await controller.ParseRecipe(mockFile);
// 3. Assert: Check the result
var okResult = result as OkObjectResult;
okResult.Should().NotBeNull();
okResult!.StatusCode.Should().Be(200);
var returnedRecipe = okResult.Value as RecipeResponseDto;
returnedRecipe!.Title.Should().Be("Test Recipe");
}
}