mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2026-01-09 20:49:12 +00:00
Fix playwright tests (#2285)
* Temporarily re-enable key based auth for Mongo and Cassandra tests. * Increase number of shards for playwright tests. * Another small bump to test shard count. * click global new... button then collection in playwright tests * get new table button * create and delete container for every individual scale test * for scale and settings, dont create sample data in container * run scale tests serially * refactor scale setup and tear down to be within each test * record network traces * record network calls on all retries * when disposing of database during playwright test, refresh tree to remove deleted database * refresh tree before opening scale and settings * When opening scale and settings, refresh databases * reload all databases before loading offers * increase time for change partition key request * increase time for change partition key request * refresh databases in test instead of product code * when refreshing containers, open console window to check for status completion * close notification console window after seeing desired log * create and delete a container for each individual test * dont delete database after every test. leave it to the CI * Don't refresh databases when opening Scale+Settings and only delete database if running locally * only open scale and settings at the beginning of each test suite * get it back to working * change settings.spect.ts from serial to parallel * don't delete database after each test * update container creation throughpout to be 5000 * run tests with no throughput limit on the account * adjust scale test to reflect no throughput limit on account * remove test container throughput * don't refresh collections when clicking settings in product code * refactor and run cleanup during pr check * copy cleanup accounts * run cleanup after playwright tests * run cleanup every three hours * revert ci.yml * update cpk test * remove cpk * remove cleanup accounts and add cpk * add cpk * remove cpk changes * revert ci.yml * run cleanup every two hours --------- Co-authored-by: Jade Welton <jawelton@microsoft.com> Co-authored-by: Asier Isayas <aisayas@microsoft.com>
This commit is contained in:
@@ -6,14 +6,10 @@ test.describe("Settings under Scale & Settings", () => {
|
||||
let context: TestContainerContext = null!;
|
||||
let explorer: DataExplorer = null!;
|
||||
|
||||
test.beforeAll("Create Test Database", async () => {
|
||||
context = await createTestSQLContainer({ includeTestData: true });
|
||||
});
|
||||
|
||||
test.beforeEach("Open Settings tab under Scale & Settings", async ({ page }) => {
|
||||
test.beforeAll("Create Test Database & Open Settings tab", async ({ browser }) => {
|
||||
context = await createTestSQLContainer();
|
||||
const page = await browser.newPage();
|
||||
explorer = await DataExplorer.open(page, TestAccount.SQL);
|
||||
const containerNode = await explorer.waitForContainerNode(context.database.id, context.container.id);
|
||||
await containerNode.expand();
|
||||
|
||||
// Click Scale & Settings and open Scale tab
|
||||
await explorer.openScaleAndSettings(context);
|
||||
@@ -21,18 +17,24 @@ test.describe("Settings under Scale & Settings", () => {
|
||||
await settingsTab.click();
|
||||
});
|
||||
|
||||
test.afterAll("Delete Test Database", async () => {
|
||||
await context?.dispose();
|
||||
});
|
||||
// Delete database only if not running in CI
|
||||
if (!process.env.CI) {
|
||||
test.afterAll("Delete Test Database", async () => {
|
||||
await context?.dispose();
|
||||
});
|
||||
}
|
||||
|
||||
test("Update TTL to On (no default)", async () => {
|
||||
const ttlOnNoDefaultRadioButton = explorer.frame.getByRole("radio", { name: "ttl-on-no-default-option" });
|
||||
await ttlOnNoDefaultRadioButton.click();
|
||||
|
||||
await explorer.commandBarButton(CommandBarButton.Save).click();
|
||||
await expect(explorer.getConsoleMessage()).toContainText(`Successfully updated container ${context.container.id}`, {
|
||||
timeout: ONE_MINUTE_MS,
|
||||
});
|
||||
await expect(explorer.getConsoleHeaderStatus()).toContainText(
|
||||
`Successfully updated container ${context.container.id}`,
|
||||
{
|
||||
timeout: 2 * ONE_MINUTE_MS,
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test("Update TTL to On (with user entry)", async () => {
|
||||
@@ -44,27 +46,11 @@ test.describe("Settings under Scale & Settings", () => {
|
||||
await ttlInput.fill("30000");
|
||||
|
||||
await explorer.commandBarButton(CommandBarButton.Save).click();
|
||||
await expect(explorer.getConsoleMessage()).toContainText(`Successfully updated container ${context.container.id}`, {
|
||||
timeout: ONE_MINUTE_MS,
|
||||
});
|
||||
});
|
||||
|
||||
test("Update TTL to Off", async () => {
|
||||
// By default TTL is set to off so we need to first set it to On
|
||||
const ttlOnNoDefaultRadioButton = explorer.frame.getByRole("radio", { name: "ttl-on-no-default-option" });
|
||||
await ttlOnNoDefaultRadioButton.click();
|
||||
await explorer.commandBarButton(CommandBarButton.Save).click();
|
||||
await expect(explorer.getConsoleMessage()).toContainText(`Successfully updated container ${context.container.id}`, {
|
||||
timeout: ONE_MINUTE_MS,
|
||||
});
|
||||
|
||||
// Set it to Off
|
||||
const ttlOffRadioButton = explorer.frame.getByRole("radio", { name: "ttl-off-option" });
|
||||
await ttlOffRadioButton.click();
|
||||
|
||||
await explorer.commandBarButton(CommandBarButton.Save).click();
|
||||
await expect(explorer.getConsoleMessage()).toContainText(`Successfully updated container ${context.container.id}`, {
|
||||
timeout: ONE_MINUTE_MS,
|
||||
});
|
||||
await expect(explorer.getConsoleHeaderStatus()).toContainText(
|
||||
`Successfully updated container ${context.container.id}`,
|
||||
{
|
||||
timeout: 2 * ONE_MINUTE_MS,
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user