LabelsWorkflowTests.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using Tests.EndToEnd.Infra;
  2. using Xunit.Abstractions;
  3. namespace Tests.EndToEnd.Labels;
  4. [Collection("Yaml CLI tests")]
  5. public class LabelsWorkflowTests(TempYamlCliFixture fs, ITestOutputHelper outputHelper)
  6. : IClassFixture<TempYamlCliFixture>
  7. {
  8. private async Task<(string output, string yaml)> ExecuteAsync(params string[] args)
  9. {
  10. outputHelper.WriteLine($"rpk {string.Join(" ", args)}");
  11. var output = await YamlCliTestHost.RunAsync(
  12. args,
  13. fs.Root,
  14. outputHelper,
  15. "config.yaml");
  16. outputHelper.WriteLine(output);
  17. var yaml = await File.ReadAllTextAsync(Path.Combine(fs.Root, "config.yaml"));
  18. return (output, yaml);
  19. }
  20. [Theory]
  21. [InlineData("servers")]
  22. [InlineData("accesspoints")]
  23. [InlineData("desktops")]
  24. [InlineData("laptops")]
  25. [InlineData("firewalls")]
  26. [InlineData("routers")]
  27. [InlineData("services")]
  28. [InlineData("systems")]
  29. [InlineData("ups")]
  30. public async Task labels_cli_workflow_test(string resourceCommand)
  31. {
  32. await File.WriteAllTextAsync(Path.Combine(fs.Root, "config.yaml"), "");
  33. // Create server
  34. var (output, yaml) = await ExecuteAsync(resourceCommand, "add", "web-01");
  35. Assert.Contains("web-01", yaml);
  36. // Add label
  37. (output, yaml) = await ExecuteAsync(resourceCommand, "label", "add", "web-01", "--key", "env", "--value", "production");
  38. Assert.Contains("Label 'env' added", output);
  39. Assert.Contains("env:", yaml);
  40. Assert.Contains("production", yaml);
  41. // Describe should show label
  42. (output, _) = await ExecuteAsync(resourceCommand, "describe", "web-01");
  43. Assert.Contains("env", output);
  44. Assert.Contains("production", output);
  45. // Remove label
  46. (output, yaml) = await ExecuteAsync(resourceCommand, "label", "remove", "web-01", "--key", "env");
  47. Assert.Contains("Label 'env' removed", output);
  48. Assert.DoesNotContain("env:", yaml);
  49. }
  50. }