mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2024-12-18 22:55:38 +00:00
66 lines
3.2 KiB
TypeScript
66 lines
3.2 KiB
TypeScript
|
// 1. Click on "New Database" on the command bar
|
||
|
// 2. a Pane with the title "Add Database" should appear on the right side of the screen
|
||
|
// i. It includes an input box for the database Id.
|
||
|
// ii. It includes a checkbox called "Provision throughput".
|
||
|
// iii. Whe the checkbox is marked, a new input with a throughput control let's you customize RU at the database level
|
||
|
// 3. Create a database WITHOUT "Provision throughput" checked.
|
||
|
// 4. It should appear in the Data Explorer list.
|
||
|
// 5. Repeat steps 1-3 but create a database WITH "Provision throughput" with the default RU value.
|
||
|
// 6. It should appear in the Data Explorer list.
|
||
|
// 7. If expanded, it should have the list item called "Scale", that once clicked, it should show the "Scale" tab.
|
||
|
// 8. Inside that tab, a throughput control will let you change the RU value within the permited range.
|
||
|
// 9. If you change the value, it should enable the "Save" button.
|
||
|
// 10. Click "Save" and verify that the process completes without error.
|
||
|
// 11. Close the tab and reopen it and verify that the input contains the last saved value.%
|
||
|
|
||
|
const crypto = require("crypto");
|
||
|
const client = require("../../../utilities/cosmosClient");
|
||
|
const randomString = crypto.randomBytes(2).toString("hex");
|
||
|
const databaseId = `TestDB-${randomString}`;
|
||
|
const collectionId = `TestColl-${randomString}`;
|
||
|
|
||
|
context("Emulator - Create database -> container -> item", () => {
|
||
|
beforeEach(async () => {
|
||
|
const { resources } = await client.databases.readAll().fetchAll();
|
||
|
for (const database of resources) {
|
||
|
await client.database(database.id).delete();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
it("creates a new database", () => {
|
||
|
cy.visit("https://0.0.0.0:1234/explorer.html?platform=Emulator");
|
||
|
cy.contains("New Container").click();
|
||
|
cy.get("[data-test=addCollection-newDatabaseId]").click();
|
||
|
cy.get("[data-test=addCollection-newDatabaseId]").type(databaseId);
|
||
|
cy.get("[data-test=addCollection-collectionId]").click();
|
||
|
cy.get("[data-test=addCollection-collectionId]").type(collectionId);
|
||
|
cy.get("[data-test=addCollection-partitionKeyValue]").click();
|
||
|
cy.get("[data-test=addCollection-partitionKeyValue]").type("/pk");
|
||
|
cy.get('input[name="createCollection"]').click();
|
||
|
cy.get(".dataResourceTree").should("contain", databaseId);
|
||
|
cy.get(".dataResourceTree")
|
||
|
.contains(databaseId)
|
||
|
.click();
|
||
|
cy.get(".dataResourceTree").should("contain", collectionId);
|
||
|
cy.get(".dataResourceTree")
|
||
|
.contains(collectionId)
|
||
|
.click();
|
||
|
cy.get(".dataResourceTree")
|
||
|
.contains("Items")
|
||
|
.click();
|
||
|
cy.get(".dataResourceTree")
|
||
|
.contains("Items")
|
||
|
.click();
|
||
|
cy.wait(1000); // React rendering inside KO causes some weird async rendering that makes this test flaky without waiting
|
||
|
cy.get(".commandBarContainer")
|
||
|
.contains("New Item")
|
||
|
.click();
|
||
|
cy.wait(1000); // React rendering inside KO causes some weird async rendering that makes this test flaky without waiting
|
||
|
cy.get(".commandBarContainer")
|
||
|
.contains("Save")
|
||
|
.click();
|
||
|
cy.wait(1000); // React rendering inside KO causes some weird async rendering that makes this test flaky without waiting
|
||
|
cy.get(".documentsGridHeaderContainer").should("contain", "replace_with_new_document_id");
|
||
|
});
|
||
|
});
|