選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

63 行
2.0KB

  1. using System.Net;
  2. using Microsoft.AspNetCore.Mvc.Testing;
  3. namespace CartWise.Web.Tests;
  4. public class ScanAndBarcodeTests : IClassFixture<CartWiseWebApplicationFactory>
  5. {
  6. private readonly CartWiseWebApplicationFactory _factory;
  7. public ScanAndBarcodeTests(CartWiseWebApplicationFactory factory)
  8. {
  9. _factory = factory;
  10. }
  11. [Fact]
  12. public async Task AnonymousUser_IsRedirectedToLoginWhenRequestingScanPage()
  13. {
  14. var client = _factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false });
  15. var response = await client.GetAsync("/scan");
  16. Assert.Equal(HttpStatusCode.Redirect, response.StatusCode);
  17. Assert.Contains("/Account/Login", response.Headers.Location?.ToString());
  18. }
  19. [Fact]
  20. public async Task AuthenticatedUser_CanReachScanPage()
  21. {
  22. var client = _factory.CreateClient();
  23. await WebTestHelpers.RegisterAsync(client, "scanuser1@example.com", "Scan User");
  24. var response = await client.GetAsync("/scan");
  25. response.EnsureSuccessStatusCode();
  26. var body = await response.Content.ReadAsStringAsync();
  27. HtmlAssert.Contains("Scan a barcode", body);
  28. }
  29. [Fact]
  30. public async Task BarcodeHtmlRoute_ReturnsNotFoundForUnknownBarcode()
  31. {
  32. var client = _factory.CreateClient();
  33. await WebTestHelpers.RegisterAsync(client, "scanuser2@example.com", "Scan User 2");
  34. var response = await client.GetAsync("/products/barcode/000000000000");
  35. Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
  36. }
  37. [Fact]
  38. public async Task BarcodeJsonRoute_ReturnsFoundFalseForUnknownBarcode()
  39. {
  40. var client = _factory.CreateClient();
  41. await WebTestHelpers.RegisterAsync(client, "scanuser3@example.com", "Scan User 3");
  42. var response = await client.GetAsync("/api/products/barcode/000000000000");
  43. response.EnsureSuccessStatusCode();
  44. var body = await response.Content.ReadAsStringAsync();
  45. Assert.Contains("\"found\":false", body);
  46. }
  47. }

Powered by TurnKey Linux.