diff --git a/tests/helpers/storagePool.ts b/tests/helpers/storagePool.ts index 5a2ef20fc..3c450eee5 100644 --- a/tests/helpers/storagePool.ts +++ b/tests/helpers/storagePool.ts @@ -5,13 +5,13 @@ export const randomPoolName = (): string => { return `playwright-pool-${randomNameSuffix()}`; }; -export const createPool = async (page: Page, pool: string) => { +export const createPool = async (page: Page, pool: string, driver = "dir") => { await page.goto("/ui/"); await page.getByRole("button", { name: "Storage" }).click(); await page.getByRole("link", { name: "Pools" }).click(); await page.getByRole("button", { name: "Create pool" }).click(); await page.getByPlaceholder("Enter name").fill(pool); - await page.getByLabel("Driver").selectOption("dir"); + await page.getByLabel("Driver").selectOption(driver); await page.getByRole("button", { name: "Create", exact: true }).click(); await page.waitForSelector(`text=Storage pool ${pool} created.`); }; diff --git a/tests/helpers/storageVolume.ts b/tests/helpers/storageVolume.ts index ee344ba64..1ddb8ce7f 100644 --- a/tests/helpers/storageVolume.ts +++ b/tests/helpers/storageVolume.ts @@ -5,13 +5,20 @@ export const randomVolumeName = (): string => { return `playwright-volume-${randomNameSuffix()}`; }; -export const createVolume = async (page: Page, volume: string) => { +export const createVolume = async ( + page: Page, + volume: string, + volumeType = "filesystem", +) => { await page.goto("/ui/"); await page.getByRole("button", { name: "Storage" }).click(); await page.getByRole("link", { name: "Volumes" }).click(); await page.getByRole("button", { name: "Create volume" }).click(); await page.getByPlaceholder("Enter name").fill(volume); await page.getByPlaceholder("Enter value").fill("1"); + await page + .getByPlaceholder("Enter content type") + .selectOption({ label: volumeType }); await page.getByRole("button", { name: "Create", exact: true }).click(); await page.waitForSelector(`text=Storage volume ${volume} created.`); await page.getByRole("button", { name: "Close notification" }).click(); diff --git a/tests/storage.spec.ts b/tests/storage.spec.ts index f6f187095..d3a29a4e9 100644 --- a/tests/storage.spec.ts +++ b/tests/storage.spec.ts @@ -114,3 +114,28 @@ test("navigate to custom volume via pool used by list", async ({ page }) => { await page.getByRole("link", { name: volume }).click(); await expect(page).toHaveURL(/volumes\/custom\//); }); + +test("storage pool with driver zfs", async ({ page }) => { + const pool = randomPoolName(); + await createPool(page, pool, "ZFS"); + + await expect(page.getByRole("link", { name: pool })).toBeVisible(); + + await deletePool(page, pool); + + await expect(page.getByRole("link", { name: pool })).toBeHidden(); +}); + +test("storage volume of type block", async ({ page }) => { + const volume = randomVolumeName(); + await createVolume(page, volume, "block"); + + await expect( + page + .getByRole("row", { name: "Name" }) + .filter({ hasText: volume }) + .getByRole("cell", { name: "Content Type" }), + ).toHaveText("Block"); + + await deleteVolume(page, volume); +});