mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-19 00:41:31 +00:00
Use Puppeteer for Emulator Test (#321)
* Use Puppeteer for Emulator Test * Fix yaml * more fixes * Cleanup * README Co-authored-by: Steve Faulkner <stfaul@microsoft.com>
This commit is contained in:
@@ -1,58 +0,0 @@
|
||||
import "expect-puppeteer";
|
||||
import { trackEvent, trackException } from "./utils";
|
||||
|
||||
jest.setTimeout(300000);
|
||||
|
||||
describe.skip("Collection CRUD", () => {
|
||||
it("should complete collection crud", async () => {
|
||||
try {
|
||||
// Login to Azure Portal
|
||||
await page.goto("https://portal.azure.com");
|
||||
await page.waitFor("input[name=loginfmt]");
|
||||
await page.type("input[name=loginfmt]", process.env.PORTAL_RUNNER_USERNAME);
|
||||
await page.click("input[type=submit]");
|
||||
await page.waitFor(3000);
|
||||
await page.waitFor("input[name=loginfmt]");
|
||||
await page.type("input[name=passwd]", process.env.PORTAL_RUNNER_PASSWORD);
|
||||
await page.click("input[type=submit]");
|
||||
await page.waitFor(3000);
|
||||
await page.waitForNavigation();
|
||||
await page.goto(
|
||||
`https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/${process.env.PORTAL_RUNNER_SUBSCRIPTION}/resourceGroups/${process.env.PORTAL_RUNNER_RESOURCE_GROUP}/providers/Microsoft.DocumentDb/databaseAccounts/${process.env.PORTAL_RUNNER_DATABASE_ACCOUNT}/dataExplorer`
|
||||
);
|
||||
// Wait for page to settle
|
||||
await page.waitFor(10000);
|
||||
// Find Data Explorer iFrame
|
||||
const frames = page.frames();
|
||||
const dataExplorer = frames.find(frame => frame.url().includes("cosmos.azure.com"));
|
||||
// Click "New Container"
|
||||
const newContainerButton = await dataExplorer.$('button[data-test="New Container"]');
|
||||
await newContainerButton.click();
|
||||
// Wait for side pane to appear
|
||||
await dataExplorer.waitFor(".contextual-pane-in");
|
||||
// Fill out New Container form
|
||||
const databaseIdInput = await dataExplorer.$("#databaseId");
|
||||
await databaseIdInput.type("foo");
|
||||
const collectionIdInput = await dataExplorer.$("#containerId");
|
||||
await collectionIdInput.type("foo");
|
||||
const partitionKeyInput = await dataExplorer.$('input[data-test="addCollection-partitionKeyValue"]');
|
||||
await partitionKeyInput.type("/partitionKey");
|
||||
trackEvent({ name: "ProductionRunnerSuccess" });
|
||||
|
||||
// TODO: Submit form and assert results
|
||||
// cy.wrap($body)
|
||||
// .find("#submitBtnAddCollection")
|
||||
// .click();
|
||||
// cy.wait(10000);
|
||||
// cy.wrap($body)
|
||||
// .find('div[data-test="resourceTreeId"]')
|
||||
// .should("exist")
|
||||
// .find('div[class="treeComponent dataResourceTree"]')
|
||||
// .should("contain", dbId);
|
||||
} catch (error) {
|
||||
await page.screenshot({ path: "failure.png" });
|
||||
trackException(error);
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -3,8 +3,11 @@ import { Frame } from "puppeteer";
|
||||
|
||||
export async function login(connectionString: string): Promise<Frame> {
|
||||
const prodUrl = process.env.DATA_EXPLORER_ENDPOINT;
|
||||
page.goto(prodUrl, { waitUntil: "networkidle2" });
|
||||
await page.goto(prodUrl);
|
||||
|
||||
if (process.env.PLATFORM === "Emulator") {
|
||||
return page.mainFrame();
|
||||
}
|
||||
// log in with connection string
|
||||
const handle = await page.waitForSelector("iframe");
|
||||
const frame = await handle.contentFrame();
|
||||
|
||||
Reference in New Issue
Block a user