ServiceErrorTests.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. private async Task<(string output, string yaml)> ExecuteAsync(params string[] args) {
  8. var output = await YamlCliTestHost.RunAsync(
  9. args,
  10. fs.Root,
  11. outputHelper,
  12. "config.yaml");
  13. var yaml = await File.ReadAllTextAsync(Path.Combine(fs.Root, "config.yaml"));
  14. return (output, yaml);
  15. }
  16. [Fact]
  17. public async Task adding_duplicate_service_returns_error() {
  18. await ExecuteAsync("services", "add", "svc01");
  19. (var output, var _) = await ExecuteAsync("services", "add", "svc01");
  20. Assert.Contains("already exists", output, StringComparison.OrdinalIgnoreCase);
  21. }
  22. [Fact]
  23. public async Task get_missing_service_returns_error() {
  24. (var output, var _) = await ExecuteAsync("services", "get", "ghost");
  25. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  26. }
  27. [Fact]
  28. public async Task set_missing_service_returns_error() {
  29. (var output, var _) = await ExecuteAsync("services", "set", "ghost", "--ip", "1.2.3.4");
  30. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  31. }
  32. [Fact]
  33. public async Task delete_missing_service_returns_error() {
  34. (var output, var _) = await ExecuteAsync("services", "del", "ghost");
  35. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  36. }
  37. [Fact]
  38. public async Task set_runs_on_missing_system_returns_error() {
  39. await ExecuteAsync("services", "add", "svc01");
  40. (var output, var _) = await ExecuteAsync(
  41. "services", "set", "svc01",
  42. "--runs-on", "ghost"
  43. );
  44. Assert.Contains("not found", output, StringComparison.OrdinalIgnoreCase);
  45. }
  46. }