ServiceErrorTests.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using Tests.EndToEnd.Infra;
  2. using Xunit.Abstractions;
  3. namespace Tests.EndToEnd.ServiceTests;
  4. [Collection("Yaml CLI tests")]
  5. public class ServiceErrorTests(TempYamlCliFixture fs, ITestOutputHelper outputHelper)
  6. : IClassFixture<TempYamlCliFixture>
  7. {
  8. private async Task<(string output, string yaml)> ExecuteAsync(params string[] args)
  9. {
  10. var output = await YamlCliTestHost.RunAsync(
  11. args,
  12. fs.Root,
  13. outputHelper,
  14. "config.yaml");
  15. var yaml = await File.ReadAllTextAsync(Path.Combine(fs.Root, "config.yaml"));
  16. return (output, yaml);
  17. }
  18. [Fact]
  19. public async Task adding_duplicate_service_returns_error()
  20. {
  21. await ExecuteAsync("services", "add", "svc01");
  22. var (output, _) = await ExecuteAsync("services", "add", "svc01");
  23. Assert.Contains("already exists", output, StringComparison.OrdinalIgnoreCase);
  24. }
  25. [Fact]
  26. public async Task get_missing_service_returns_error()
  27. {
  28. var (output, _) = await ExecuteAsync("services", "get", "ghost");
  29. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  30. }
  31. [Fact]
  32. public async Task set_missing_service_returns_error()
  33. {
  34. var (output, _) = await ExecuteAsync("services", "set", "ghost", "--ip", "1.2.3.4");
  35. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  36. }
  37. [Fact]
  38. public async Task delete_missing_service_returns_error()
  39. {
  40. var (output, _) = await ExecuteAsync("services", "del", "ghost");
  41. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  42. }
  43. [Fact]
  44. public async Task set_runs_on_missing_system_returns_error()
  45. {
  46. await ExecuteAsync("services", "add", "svc01");
  47. var (output, _) = await ExecuteAsync(
  48. "services", "set", "svc01",
  49. "--runs-on", "ghost"
  50. );
  51. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  52. }
  53. }