|
|
@@ -0,0 +1,166 @@
|
|
|
+namespace Tests.E2e.PageObjectModels;
|
|
|
+
|
|
|
+using Microsoft.Playwright;
|
|
|
+
|
|
|
+public class PortsPom(IPage page) {
|
|
|
+ public TagsPom Tags => new(page);
|
|
|
+ public LabelsPom Labels => new(page);
|
|
|
+ public PortsPom Ports => new(page);
|
|
|
+
|
|
|
+ private const string _portsPrefix = "accesspoint-ports";
|
|
|
+
|
|
|
+ // -------------------------------------------------
|
|
|
+ // Root
|
|
|
+ // -------------------------------------------------
|
|
|
+
|
|
|
+ public ILocator Root(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-section");
|
|
|
+
|
|
|
+ public ILocator AddButton(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-add");
|
|
|
+
|
|
|
+ // -------------------------------------------------
|
|
|
+ // Port Groups
|
|
|
+ // -------------------------------------------------
|
|
|
+
|
|
|
+ public ILocator PortGroup(string testIdPrefix, int index)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-item-{index}");
|
|
|
+
|
|
|
+ public ILocator EditPortGroupButton(string testIdPrefix, int index)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-edit-{index}");
|
|
|
+
|
|
|
+ public ILocator PortsContainer(string testIdPrefix, int index)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-ports-{index}");
|
|
|
+
|
|
|
+ // -------------------------------------------------
|
|
|
+ // Individual Ports
|
|
|
+ // -------------------------------------------------
|
|
|
+
|
|
|
+ public ILocator Port(string testIdPrefix, int groupIndex, int portIndex)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-visualizer-{groupIndex}-port-{portIndex}");
|
|
|
+
|
|
|
+ // -------------------------------------------------
|
|
|
+ // Port Modal
|
|
|
+ // -------------------------------------------------
|
|
|
+
|
|
|
+ public ILocator PortModal(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-port-modal");
|
|
|
+
|
|
|
+ // -------------------------------------------------
|
|
|
+ // Connection Modal
|
|
|
+ // -------------------------------------------------
|
|
|
+
|
|
|
+ public ILocator ConnectionModal(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-container");
|
|
|
+
|
|
|
+ public ILocator ResourceASelect(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-resource-a");
|
|
|
+
|
|
|
+ public ILocator GroupASelect(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-group-a");
|
|
|
+
|
|
|
+ public ILocator PortASelect(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-port-a");
|
|
|
+
|
|
|
+ public ILocator ResourceBSelect(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-resource-b");
|
|
|
+
|
|
|
+ public ILocator GroupBSelect(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-group-b");
|
|
|
+
|
|
|
+ public ILocator PortBSelect(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-port-b");
|
|
|
+
|
|
|
+ public ILocator SubmitConnection(string testIdPrefix)
|
|
|
+ => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-submit");
|
|
|
+
|
|
|
+ // -------------------------------------------------
|
|
|
+ // Assertions
|
|
|
+ // -------------------------------------------------
|
|
|
+
|
|
|
+ public async Task AssertPortGroupVisibleAsync(string prefix, int index)
|
|
|
+ => await Assertions.Expect(PortGroup(prefix, index)).ToBeVisibleAsync();
|
|
|
+
|
|
|
+ public async Task AssertPortVisibleAsync(string prefix, int groupIndex, int portIndex)
|
|
|
+ => await Assertions.Expect(Port(prefix, groupIndex, portIndex)).ToBeVisibleAsync();
|
|
|
+
|
|
|
+ // -------------------------------------------------
|
|
|
+ // Actions
|
|
|
+ // -------------------------------------------------
|
|
|
+
|
|
|
+ public async Task AddPortGroupAsync(string prefix) {
|
|
|
+ await AddButton(prefix).ClickAsync();
|
|
|
+ await Assertions.Expect(PortModal(prefix)).ToBeVisibleAsync();
|
|
|
+ }
|
|
|
+
|
|
|
+ public async Task OpenConnectionFromPortAsync(string prefix, int groupIndex, int portIndex) {
|
|
|
+ await Port(prefix, groupIndex, portIndex).ClickAsync();
|
|
|
+ await Assertions.Expect(ConnectionModal(prefix)).ToBeVisibleAsync();
|
|
|
+ }
|
|
|
+
|
|
|
+ public async Task CreateConnectionAsync(
|
|
|
+ string prefix,
|
|
|
+ string resourceA,
|
|
|
+ string groupA,
|
|
|
+ string portA,
|
|
|
+ string resourceB,
|
|
|
+ string groupB,
|
|
|
+ string portB) {
|
|
|
+ await ResourceASelect(prefix).SelectOptionAsync(
|
|
|
+ new SelectOptionValue { Label = resourceA });
|
|
|
+
|
|
|
+ await GroupASelect(prefix).SelectOptionAsync(
|
|
|
+ new SelectOptionValue { Label = groupA });
|
|
|
+
|
|
|
+ await PortASelect(prefix).SelectOptionAsync(
|
|
|
+ new SelectOptionValue { Label = portA });
|
|
|
+
|
|
|
+ await ResourceBSelect(prefix).SelectOptionAsync(
|
|
|
+ new SelectOptionValue { Label = resourceB });
|
|
|
+
|
|
|
+ await GroupBSelect(prefix).SelectOptionAsync(
|
|
|
+ new SelectOptionValue { Label = groupB });
|
|
|
+
|
|
|
+ await PortBSelect(prefix).SelectOptionAsync(
|
|
|
+ new SelectOptionValue { Label = portB });
|
|
|
+
|
|
|
+ await SubmitConnection(prefix).ClickAsync();
|
|
|
+ }
|
|
|
+
|
|
|
+ // -------------------------------------------------
|
|
|
+ // Port Modal Fields
|
|
|
+ // -------------------------------------------------
|
|
|
+
|
|
|
+ public ILocator PortTypeSelect(string prefix)
|
|
|
+ => page.GetByTestId($"{prefix}-port-group-port-modal-type-input");
|
|
|
+
|
|
|
+ public ILocator PortSpeedSelect(string prefix)
|
|
|
+ => page.GetByTestId($"{prefix}-port-group-port-modal-speed-input");
|
|
|
+
|
|
|
+ public ILocator PortCountInput(string prefix)
|
|
|
+ => page.GetByTestId($"{prefix}-port-group-port-modal-count-input");
|
|
|
+ public ILocator PortSubmit(string prefix)
|
|
|
+ => page.GetByTestId($"{prefix}-port-group-port-modal-submit");
|
|
|
+
|
|
|
+ public ILocator PortCancel(string prefix)
|
|
|
+ => page.GetByTestId($"{prefix}-port-group-port-modal-cancel");
|
|
|
+
|
|
|
+ public async Task AddPortGroupAsync(
|
|
|
+ string prefix,
|
|
|
+ string type,
|
|
|
+ string speed,
|
|
|
+ int count) {
|
|
|
+ await AddButton(prefix).ClickAsync();
|
|
|
+
|
|
|
+ await Assertions.Expect(PortModal(prefix)).ToBeVisibleAsync();
|
|
|
+
|
|
|
+ await PortTypeSelect(prefix).SelectOptionAsync(
|
|
|
+ new SelectOptionValue { Label = type });
|
|
|
+
|
|
|
+ await PortSpeedSelect(prefix).FillAsync(speed.ToString());
|
|
|
+
|
|
|
+ await PortCountInput(prefix).FillAsync(count.ToString());
|
|
|
+
|
|
|
+ await PortSubmit(prefix).ClickAsync();
|
|
|
+ }
|
|
|
+}
|