From be7736afb757b7d53022914cd7b126e5af2f4736 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Tue, 25 May 2021 13:25:42 +0100 Subject: [PATCH] Fixing app cypress test cases. --- packages/auth/src/db/utils.js | 4 +- packages/builder/cypress/support/commands.js | 91 +++++++++---------- packages/builder/cypress/support/cookies.js | 3 - packages/builder/cypress/support/index.js | 1 - .../server/src/api/controllers/application.js | 5 +- .../worker/src/api/controllers/admin/roles.js | 2 +- 6 files changed, 44 insertions(+), 62 deletions(-) delete mode 100644 packages/builder/cypress/support/cookies.js diff --git a/packages/auth/src/db/utils.js b/packages/auth/src/db/utils.js index 93217277e7..a6250b0791 100644 --- a/packages/auth/src/db/utils.js +++ b/packages/auth/src/db/utils.js @@ -1,6 +1,5 @@ const { newid } = require("../hashing") const Replication = require("./Replication") -const { getCouch } = require("./index") const UNICODE_MAX = "\ufff0" const SEPARATOR = "_" @@ -164,8 +163,7 @@ exports.getDeployedAppID = appId => { * different users/companies apps as there is no security around it - all apps are returned. * @return {Promise} returns the app information document stored in each app database. */ -exports.getAllApps = async ({ dev, all } = {}) => { - const CouchDB = getCouch() +exports.getAllApps = async ({ CouchDB, dev, all } = {}) => { let allDbs = await CouchDB.allDbs() const appDbNames = allDbs.filter(dbName => dbName.startsWith(exports.APP_PREFIX) diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js index 94a22295f2..732f625351 100644 --- a/packages/builder/cypress/support/commands.js +++ b/packages/builder/cypress/support/commands.js @@ -6,21 +6,18 @@ // Cypress.Commands.add("login", () => { - cy.getCookie("budibase:auth").then(cookie => { - // Already logged in - if (cookie) return - - cy.visit(`localhost:${Cypress.env("PORT")}/builder`) - - cy.url().then(url => { - if (url.includes("builder/admin")) { - // create admin user - cy.get("input").first().type("test@test.com") - cy.get('input[type="password"]').first().type("test") - cy.get('input[type="password"]').eq(1).type("test") - cy.contains("Create super admin user").click() - } - // login + cy.visit(`localhost:${Cypress.env("PORT")}/builder`) + cy.wait(100) + cy.url().then(url => { + if (url.includes("builder/admin")) { + // create admin user + cy.get("input").first().type("test@test.com") + cy.get('input[type="password"]').first().type("test") + cy.get('input[type="password"]').eq(1).type("test") + cy.contains("Create super admin user").click() + } + // login + cy.contains("Sign in to Budibase").then(() => { cy.get("input").first().type("test@test.com") cy.get('input[type="password"]').type("test") cy.get("button").first().click() @@ -32,45 +29,39 @@ Cypress.Commands.add("createApp", name => { cy.visit(`localhost:${Cypress.env("PORT")}/builder`) // wait for init API calls on visit cy.wait(100) - cy.contains("Create New Web App").click() - cy.get("body") - .then($body => { - if ($body.find("input[name=apiKey]").length) { - // input was found, do something else here - cy.get("input[name=apiKey]").type(name).should("have.value", name) - cy.contains("Next").click() - } - }) - .then(() => { - cy.get(".spectrum-Modal") - .within(() => { - cy.get("input").eq(0).type(name).should("have.value", name).blur() - cy.contains("Next").click() - cy.get("input").eq(1).type("test@test.com").blur() - cy.get("input").eq(2).type("test").blur() - cy.contains("Submit").click() - }) - .then(() => { - cy.get("[data-cy=new-table]", { - timeout: 20000, - }).should("be.visible") - }) - }) + cy.contains("Create app").click() + cy.get("body").then(() => { + cy.get(".spectrum-Modal") + .within(() => { + cy.get("input").eq(0).type(name).should("have.value", name).blur() + cy.contains("Create app").click() + }) + .then(() => { + cy.get("[data-cy=new-table]", { + timeout: 20000, + }).should("be.visible") + }) + }) }) Cypress.Commands.add("deleteApp", name => { - cy.visit(`localhost:${Cypress.env("PORT")}/builder`) - cy.get(".apps").then($apps => { - cy.wait(1000) - if ($apps.find(`[data-cy="app-${name}"]`).length) { - cy.get(`[data-cy="app-${name}"]`).contains("Open").click() - cy.get("[data-cy=settings-icon]").click() - cy.get(".spectrum-Dialog").within(() => { - cy.contains("Danger Zone").click() - cy.get("input").type("DELETE").blur() - cy.contains("Delete Entire App").click() - }) + cy.contains("Create your first app").then($first => { + if ($first.length === 1) { + return } + cy.visit(`localhost:${Cypress.env("PORT")}/builder`) + cy.get(".app").then($app => { + cy.wait(1000) + if ($app.find(`[data-cy="app-${name}"]`).length) { + cy.get(`[data-cy="app-${name}"]`).contains("Open").click() + cy.get("[data-cy=settings-icon]").click() + cy.get(".spectrum-Dialog").within(() => { + cy.contains("Danger Zone").click() + cy.get("input").type("DELETE").blur() + cy.contains("Delete Entire App").click() + }) + } + }) }) }) diff --git a/packages/builder/cypress/support/cookies.js b/packages/builder/cypress/support/cookies.js deleted file mode 100644 index 3e2fba6481..0000000000 --- a/packages/builder/cypress/support/cookies.js +++ /dev/null @@ -1,3 +0,0 @@ -Cypress.Cookies.defaults({ - preserve: "budibase:auth", -}) diff --git a/packages/builder/cypress/support/index.js b/packages/builder/cypress/support/index.js index 03ef2249f9..46a916f132 100644 --- a/packages/builder/cypress/support/index.js +++ b/packages/builder/cypress/support/index.js @@ -14,7 +14,6 @@ // *********************************************************** // Import commands.js using ES2015 syntax: -import "./cookies" import "./commands" // Alternatively you can use CommonJS syntax: diff --git a/packages/server/src/api/controllers/application.js b/packages/server/src/api/controllers/application.js index 2511686bed..7b61d8dee1 100644 --- a/packages/server/src/api/controllers/application.js +++ b/packages/server/src/api/controllers/application.js @@ -116,7 +116,7 @@ async function createInstance(template) { exports.fetch = async function (ctx) { const dev = ctx.query && ctx.query.status === AppStatus.DEV const all = ctx.query && ctx.query.status === AppStatus.ALL - const apps = await getAllApps({ dev, all }) + const apps = await getAllApps({ CouchDB, dev, all }) // get the locks for all the dev apps if (dev || all) { @@ -192,9 +192,6 @@ exports.create = async function (ctx) { instance: instance, updatedAt: new Date().toISOString(), createdAt: new Date().toISOString(), - deployment: { - type: "cloud", - }, } const instanceDb = new CouchDB(appId) await instanceDb.put(newApplication) diff --git a/packages/worker/src/api/controllers/admin/roles.js b/packages/worker/src/api/controllers/admin/roles.js index 0f6daf8aa2..17207be6f2 100644 --- a/packages/worker/src/api/controllers/admin/roles.js +++ b/packages/worker/src/api/controllers/admin/roles.js @@ -8,7 +8,7 @@ const CouchDB = require("../../../db") exports.fetch = async ctx => { // always use the dev apps as they'll be most up to date (true) - const apps = await getAllApps({ dev: true }) + const apps = await getAllApps({ CouchDB, dev: true }) const promises = [] for (let app of apps) { // use dev app IDs