test(blogs): GET /api/v1/blog returns 200 with empty list
First behavioural test for the Yavsc.Blogs API surface. Sends a GET on the blog index with the X-Test-Role auth bypass and asserts the response is 200 with an empty JSON array — the in-memory ApplicationDbContext has no rows, and BlogSpotService.Index returns an empty enumeration. While here, fix a routing miss: AddControllers() in the test fixture was only scanning the test assembly, so BlogApiController was never registered. Add the Yavsc.Blogs application part explicitly. Without this, every request to /api/v1/blog came back as 404 — the same symptom PostIt was seeing in production. The POST flow lands in the next commit, once BlogApiController is made to accept JSON (it currently requires multipart/form-data because of Request.Form.Files).
This commit is contained in:
parent
8c38bab45a
commit
9f5a1505e3
2 changed files with 72 additions and 7 deletions
|
|
@ -1,13 +1,10 @@
|
|||
using System.Security.Claims;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Mvc.Testing;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.FileProviders;
|
||||
using Yavsc;
|
||||
using Yavsc.Blogs.Controllers;
|
||||
using Yavsc.Models;
|
||||
using Yavsc.Server.Services;
|
||||
using Yavsc.Services;
|
||||
using Yavsc.Tests.Shared;
|
||||
|
||||
|
|
@ -59,9 +56,12 @@ public sealed class BlogsWebServerFixture : WebHostFixture
|
|||
// IFileSystemAuthManager).
|
||||
builder.Services.AddScoped<BlogSpotService>();
|
||||
|
||||
// The BlogApiController is reached through MVC, so register
|
||||
// MVC + the BlogScope authorization policy.
|
||||
builder.Services.AddControllers();
|
||||
// The BlogApiController is reached through MVC. AddControllers()
|
||||
// by default scans the test assembly only; we explicitly add the
|
||||
// Yavsc.Blogs application part so the controller is discovered
|
||||
// and routed.
|
||||
builder.Services.AddControllers()
|
||||
.AddApplicationPart(typeof(BlogApiController).Assembly);
|
||||
builder.Services.AddAuthorization(opt =>
|
||||
{
|
||||
// Mirror the production "BlogScope" policy: any
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue