LabelsWorkflowTests.cs 2.0 KB

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