mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2026-07-21 21:07:23 +01:00
e-enable more tests.
This commit is contained in:
+82
-82
@@ -1,103 +1,103 @@
|
||||
// import { expect, test } from "@playwright/test";
|
||||
import { expect, test } from "@playwright/test";
|
||||
|
||||
// import { setupCORSBypass } from "../CORSBypass";
|
||||
// import { CommandBarButton, DataExplorer, DocumentsTab, TestAccount } from "../fx";
|
||||
// import { retry, serializeMongoToJson, setPartitionKeys } from "../testData";
|
||||
// import { documentTestCases } from "./testCases";
|
||||
import { setupCORSBypass } from "../CORSBypass";
|
||||
import { CommandBarButton, DataExplorer, DocumentsTab, TestAccount } from "../fx";
|
||||
import { retry, serializeMongoToJson, setPartitionKeys } from "../testData";
|
||||
import { documentTestCases } from "./testCases";
|
||||
|
||||
// let explorer: DataExplorer = null!;
|
||||
// let documentsTab: DocumentsTab = null!;
|
||||
let explorer: DataExplorer = null!;
|
||||
let documentsTab: DocumentsTab = null!;
|
||||
|
||||
// for (const { name, databaseId, containerId, documents } of documentTestCases) {
|
||||
// test.describe(`Test MongoRU Documents with ${name}`, () => {
|
||||
// // test.skip(true, "Temporarily disabling all tests in this spec file");
|
||||
// test.beforeEach("Open documents tab", async ({ page }) => {
|
||||
// await setupCORSBypass(page);
|
||||
// explorer = await DataExplorer.open(page, TestAccount.MongoReadonly);
|
||||
for (const { name, databaseId, containerId, documents } of documentTestCases) {
|
||||
test.describe(`Test MongoRU Documents with ${name}`, () => {
|
||||
// test.skip(true, "Temporarily disabling all tests in this spec file");
|
||||
test.beforeEach("Open documents tab", async ({ page }) => {
|
||||
await setupCORSBypass(page);
|
||||
explorer = await DataExplorer.open(page, TestAccount.MongoReadonly);
|
||||
|
||||
// const containerNode = await explorer.waitForContainerNode(databaseId, containerId);
|
||||
// await containerNode.expand();
|
||||
const containerNode = await explorer.waitForContainerNode(databaseId, containerId);
|
||||
await containerNode.expand();
|
||||
|
||||
// const containerMenuNode = await explorer.waitForContainerDocumentsNode(databaseId, containerId);
|
||||
// await containerMenuNode.element.click();
|
||||
const containerMenuNode = await explorer.waitForContainerDocumentsNode(databaseId, containerId);
|
||||
await containerMenuNode.element.click();
|
||||
|
||||
// documentsTab = explorer.documentsTab("tab0");
|
||||
documentsTab = explorer.documentsTab("tab0");
|
||||
|
||||
// await documentsTab.documentsFilter.waitFor();
|
||||
// await documentsTab.documentsListPane.waitFor();
|
||||
// await expect(documentsTab.resultsEditor.locator).toBeAttached({ timeout: 60 * 1000 });
|
||||
// });
|
||||
// test.afterEach(async ({ page }) => {
|
||||
// await page.unrouteAll({ behavior: "ignoreErrors" });
|
||||
// });
|
||||
await documentsTab.documentsFilter.waitFor();
|
||||
await documentsTab.documentsListPane.waitFor();
|
||||
await expect(documentsTab.resultsEditor.locator).toBeAttached({ timeout: 60 * 1000 });
|
||||
});
|
||||
test.afterEach(async ({ page }) => {
|
||||
await page.unrouteAll({ behavior: "ignoreErrors" });
|
||||
});
|
||||
|
||||
// for (const document of documents) {
|
||||
// const { documentId: docId, partitionKeys } = document;
|
||||
// test.describe(`Document ID: ${docId}`, () => {
|
||||
// test(`should load and view document ${docId}`, async () => {
|
||||
// test.skip();
|
||||
// const span = documentsTab.documentsListPane.getByText(docId, { exact: true }).nth(0);
|
||||
// await span.waitFor();
|
||||
// await expect(span).toBeVisible();
|
||||
for (const document of documents) {
|
||||
const { documentId: docId, partitionKeys } = document;
|
||||
test.describe(`Document ID: ${docId}`, () => {
|
||||
test(`should load and view document ${docId}`, async () => {
|
||||
test.skip();
|
||||
const span = documentsTab.documentsListPane.getByText(docId, { exact: true }).nth(0);
|
||||
await span.waitFor();
|
||||
await expect(span).toBeVisible();
|
||||
|
||||
// await span.click();
|
||||
// await expect(documentsTab.resultsEditor.locator).toBeAttached({ timeout: 60 * 1000 });
|
||||
await span.click();
|
||||
await expect(documentsTab.resultsEditor.locator).toBeAttached({ timeout: 60 * 1000 });
|
||||
|
||||
// const resultText = await documentsTab.resultsEditor.text();
|
||||
// const resultData = serializeMongoToJson(resultText!);
|
||||
// expect(resultText).not.toBeNull();
|
||||
// expect(resultData?._id).not.toBeNull();
|
||||
// expect(resultData?._id).toEqual(docId);
|
||||
// });
|
||||
// test(`should be able to create and delete new document from ${docId}`, async ({ page }) => {
|
||||
// test.skip();
|
||||
// const span = documentsTab.documentsListPane.getByText(docId, { exact: true }).nth(0);
|
||||
// await span.waitFor();
|
||||
// await expect(span).toBeVisible();
|
||||
const resultText = await documentsTab.resultsEditor.text();
|
||||
const resultData = serializeMongoToJson(resultText!);
|
||||
expect(resultText).not.toBeNull();
|
||||
expect(resultData?._id).not.toBeNull();
|
||||
expect(resultData?._id).toEqual(docId);
|
||||
});
|
||||
test(`should be able to create and delete new document from ${docId}`, async ({ page }) => {
|
||||
test.skip();
|
||||
const span = documentsTab.documentsListPane.getByText(docId, { exact: true }).nth(0);
|
||||
await span.waitFor();
|
||||
await expect(span).toBeVisible();
|
||||
|
||||
// await span.click();
|
||||
// await page.waitForTimeout(5000); // wait for 5 seconds to ensure document is fully loaded. waitforTimeout is not recommended generally but here we are working around flakiness in the test env
|
||||
await span.click();
|
||||
await page.waitForTimeout(5000); // wait for 5 seconds to ensure document is fully loaded. waitforTimeout is not recommended generally but here we are working around flakiness in the test env
|
||||
|
||||
// let newDocumentId;
|
||||
// await retry(async () => {
|
||||
// const newDocumentButton = await explorer.waitForCommandBarButton(CommandBarButton.NewDocument, 5000);
|
||||
// await expect(newDocumentButton).toBeVisible();
|
||||
// await expect(newDocumentButton).toBeEnabled();
|
||||
// await newDocumentButton.click();
|
||||
// await expect(documentsTab.resultsEditor.locator).toBeAttached({ timeout: 60 * 1000 });
|
||||
let newDocumentId;
|
||||
await retry(async () => {
|
||||
const newDocumentButton = await explorer.waitForCommandBarButton(CommandBarButton.NewDocument, 5000);
|
||||
await expect(newDocumentButton).toBeVisible();
|
||||
await expect(newDocumentButton).toBeEnabled();
|
||||
await newDocumentButton.click();
|
||||
await expect(documentsTab.resultsEditor.locator).toBeAttached({ timeout: 60 * 1000 });
|
||||
|
||||
// newDocumentId = `${Date.now().toString()}-delete`;
|
||||
newDocumentId = `${Date.now().toString()}-delete`;
|
||||
|
||||
// const newDocument = {
|
||||
// _id: newDocumentId,
|
||||
// ...setPartitionKeys(partitionKeys || []),
|
||||
// };
|
||||
const newDocument = {
|
||||
_id: newDocumentId,
|
||||
...setPartitionKeys(partitionKeys || []),
|
||||
};
|
||||
|
||||
// await documentsTab.resultsEditor.setText(JSON.stringify(newDocument));
|
||||
// const saveButton = await explorer.waitForCommandBarButton(CommandBarButton.Save, 5000);
|
||||
// await saveButton.click({ timeout: 5000 });
|
||||
await documentsTab.resultsEditor.setText(JSON.stringify(newDocument));
|
||||
const saveButton = await explorer.waitForCommandBarButton(CommandBarButton.Save, 5000);
|
||||
await saveButton.click({ timeout: 5000 });
|
||||
|
||||
// await expect(saveButton).toBeHidden({ timeout: 5000 });
|
||||
// }, 3);
|
||||
await expect(saveButton).toBeHidden({ timeout: 5000 });
|
||||
}, 3);
|
||||
|
||||
// await documentsTab.setFilter(`{_id: "${newDocumentId}"}`);
|
||||
// await documentsTab.filterButton.click();
|
||||
await documentsTab.setFilter(`{_id: "${newDocumentId}"}`);
|
||||
await documentsTab.filterButton.click();
|
||||
|
||||
// const newSpan = documentsTab.documentsListPane.getByText(newDocumentId, { exact: true }).nth(0);
|
||||
// await newSpan.waitFor();
|
||||
// await newSpan.click();
|
||||
// await expect(documentsTab.resultsEditor.locator).toBeAttached({ timeout: 60 * 1000 });
|
||||
const newSpan = documentsTab.documentsListPane.getByText(newDocumentId, { exact: true }).nth(0);
|
||||
await newSpan.waitFor();
|
||||
await newSpan.click();
|
||||
await expect(documentsTab.resultsEditor.locator).toBeAttached({ timeout: 60 * 1000 });
|
||||
|
||||
// const deleteButton = await explorer.waitForCommandBarButton(CommandBarButton.Delete, 5000);
|
||||
// await deleteButton.click();
|
||||
const deleteButton = await explorer.waitForCommandBarButton(CommandBarButton.Delete, 5000);
|
||||
await deleteButton.click();
|
||||
|
||||
// const deleteDialogButton = await explorer.waitForDialogButton("Delete", 5000);
|
||||
// await deleteDialogButton.click();
|
||||
const deleteDialogButton = await explorer.waitForDialogButton("Delete", 5000);
|
||||
await deleteDialogButton.click();
|
||||
|
||||
// const deletedSpan = documentsTab.documentsListPane.getByText(newDocumentId, { exact: true }).nth(0);
|
||||
// await expect(deletedSpan).toHaveCount(0);
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
const deletedSpan = documentsTab.documentsListPane.getByText(newDocumentId, { exact: true }).nth(0);
|
||||
await expect(deletedSpan).toHaveCount(0);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user