Adding a dep:clean function, cleaning up lock files and fixing backend-core test which did not utilise tenancy (no global db).
This commit is contained in:
parent
fe846f86a5
commit
a6b249dc7e
|
@ -72,6 +72,7 @@
|
||||||
"mode:cloud": "yarn env:selfhost:disable && yarn env:multi:enable && yarn env:account:disable",
|
"mode:cloud": "yarn env:selfhost:disable && yarn env:multi:enable && yarn env:account:disable",
|
||||||
"mode:account": "yarn mode:cloud && yarn env:account:enable",
|
"mode:account": "yarn mode:cloud && yarn env:account:enable",
|
||||||
"security:audit": "node scripts/audit.js",
|
"security:audit": "node scripts/audit.js",
|
||||||
"postinstall": "husky install"
|
"postinstall": "husky install",
|
||||||
|
"dep:clean": "yarn clean && yarn bootstrap"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,17 +2,13 @@
|
||||||
|
|
||||||
require("../../../tests/utilities/dbConfig")
|
require("../../../tests/utilities/dbConfig")
|
||||||
|
|
||||||
const { dangerousGetDB } = require("../../../db")
|
|
||||||
const { authenticateThirdParty } = require("../third-party-common")
|
const { authenticateThirdParty } = require("../third-party-common")
|
||||||
const { data } = require("./utilities/mock-data")
|
const { data } = require("./utilities/mock-data")
|
||||||
|
const { DEFAULT_TENANT_ID } = require("../../../constants")
|
||||||
|
|
||||||
const {
|
const { generateGlobalUserID } = require("../../../db/utils")
|
||||||
StaticDatabases,
|
|
||||||
generateGlobalUserID
|
|
||||||
} = require("../../../db/utils")
|
|
||||||
const { newid } = require("../../../hashing")
|
const { newid } = require("../../../hashing")
|
||||||
|
const { doWithGlobalDB, doInTenant } = require("../../../tenancy")
|
||||||
let db
|
|
||||||
|
|
||||||
const done = jest.fn()
|
const done = jest.fn()
|
||||||
|
|
||||||
|
@ -21,43 +17,52 @@ const getErrorMessage = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const saveUser = async (user) => {
|
const saveUser = async (user) => {
|
||||||
return await db.put(user)
|
return doWithGlobalDB(DEFAULT_TENANT_ID, async db => {
|
||||||
|
return await db.put(user)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function authenticate(user, requireLocal, saveFn) {
|
||||||
|
return doInTenant(DEFAULT_TENANT_ID, () => {
|
||||||
|
return authenticateThirdParty(user, requireLocal, done, saveFn)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("third party common", () => {
|
describe("third party common", () => {
|
||||||
describe("authenticateThirdParty", () => {
|
describe("authenticateThirdParty", () => {
|
||||||
let thirdPartyUser
|
let thirdPartyUser
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
db = dangerousGetDB(StaticDatabases.GLOBAL.name)
|
|
||||||
thirdPartyUser = data.buildThirdPartyUser()
|
thirdPartyUser = data.buildThirdPartyUser()
|
||||||
})
|
})
|
||||||
|
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
jest.clearAllMocks()
|
return doWithGlobalDB(DEFAULT_TENANT_ID, async db => {
|
||||||
await db.destroy()
|
jest.clearAllMocks()
|
||||||
|
await db.destroy()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("validation", () => {
|
describe("validation", () => {
|
||||||
const testValidation = async (message) => {
|
const testValidation = async (message) => {
|
||||||
await authenticateThirdParty(thirdPartyUser, false, done, saveUser)
|
await authenticate(thirdPartyUser, false, saveUser)
|
||||||
expect(done.mock.calls.length).toBe(1)
|
expect(done.mock.calls.length).toBe(1)
|
||||||
expect(getErrorMessage()).toContain(message)
|
expect(getErrorMessage()).toContain(message)
|
||||||
}
|
}
|
||||||
|
|
||||||
it("provider fails", async () => {
|
it("provider fails", async () => {
|
||||||
delete thirdPartyUser.provider
|
delete thirdPartyUser.provider
|
||||||
testValidation("third party user provider required")
|
await testValidation("third party user provider required")
|
||||||
})
|
})
|
||||||
|
|
||||||
it("user id fails", async () => {
|
it("user id fails", async () => {
|
||||||
delete thirdPartyUser.userId
|
delete thirdPartyUser.userId
|
||||||
testValidation("third party user id required")
|
await testValidation("third party user id required")
|
||||||
})
|
})
|
||||||
|
|
||||||
it("email fails", async () => {
|
it("email fails", async () => {
|
||||||
delete thirdPartyUser.email
|
delete thirdPartyUser.email
|
||||||
testValidation("third party user email required")
|
await testValidation("third party user email required")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -81,34 +86,37 @@ describe("third party common", () => {
|
||||||
describe("when the user doesn't exist", () => {
|
describe("when the user doesn't exist", () => {
|
||||||
describe("when a local account is required", () => {
|
describe("when a local account is required", () => {
|
||||||
it("returns an error message", async () => {
|
it("returns an error message", async () => {
|
||||||
await authenticateThirdParty(thirdPartyUser, true, done, saveUser)
|
await authenticate(thirdPartyUser, true, saveUser)
|
||||||
expect(done.mock.calls.length).toBe(1)
|
expect(done.mock.calls.length).toBe(1)
|
||||||
expect(getErrorMessage()).toContain("Email does not yet exist. You must set up your local budibase account first.")
|
expect(getErrorMessage()).toContain("Email does not yet exist. You must set up your local budibase account first.")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("when a local account isn't required", () => {
|
describe("when a local account isn't required", () => {
|
||||||
it("creates and authenticates the user", async () => {
|
it("creates and authenticates the user", async () => {
|
||||||
await authenticateThirdParty(thirdPartyUser, false, done, saveUser)
|
await authenticate(thirdPartyUser, false, saveUser)
|
||||||
const user = expectUserIsAuthenticated()
|
const user = expectUserIsAuthenticated()
|
||||||
expectUserIsSynced(user, thirdPartyUser)
|
expectUserIsSynced(user, thirdPartyUser)
|
||||||
expect(user.roles).toStrictEqual({})
|
expect(user.roles).toStrictEqual({})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("when the user exists", () => {
|
describe("when the user exists", () => {
|
||||||
let dbUser
|
let dbUser
|
||||||
let id
|
let id
|
||||||
let email
|
let email
|
||||||
|
|
||||||
const createUser = async () => {
|
const createUser = async () => {
|
||||||
dbUser = {
|
return doWithGlobalDB(DEFAULT_TENANT_ID, async db => {
|
||||||
_id: id,
|
dbUser = {
|
||||||
email: email,
|
_id: id,
|
||||||
}
|
email: email,
|
||||||
const response = await db.put(dbUser)
|
}
|
||||||
dbUser._rev = response.rev
|
const response = await db.put(dbUser)
|
||||||
|
dbUser._rev = response.rev
|
||||||
|
return dbUser
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const expectUserIsUpdated = (user) => {
|
const expectUserIsUpdated = (user) => {
|
||||||
|
@ -126,8 +134,8 @@ describe("third party common", () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
it("syncs and authenticates the user", async () => {
|
it("syncs and authenticates the user", async () => {
|
||||||
await authenticateThirdParty(thirdPartyUser, true, done, saveUser)
|
await authenticate(thirdPartyUser, true, saveUser)
|
||||||
|
|
||||||
const user = expectUserIsAuthenticated()
|
const user = expectUserIsAuthenticated()
|
||||||
expectUserIsSynced(user, thirdPartyUser)
|
expectUserIsSynced(user, thirdPartyUser)
|
||||||
expectUserIsUpdated(user)
|
expectUserIsUpdated(user)
|
||||||
|
@ -142,8 +150,8 @@ describe("third party common", () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
it("syncs and authenticates the user", async () => {
|
it("syncs and authenticates the user", async () => {
|
||||||
await authenticateThirdParty(thirdPartyUser, true, done, saveUser)
|
await authenticate(thirdPartyUser, true, saveUser)
|
||||||
|
|
||||||
const user = expectUserIsAuthenticated()
|
const user = expectUserIsAuthenticated()
|
||||||
expectUserIsSynced(user, thirdPartyUser)
|
expectUserIsSynced(user, thirdPartyUser)
|
||||||
expectUserIsUpdated(user)
|
expectUserIsUpdated(user)
|
||||||
|
@ -160,8 +168,8 @@ describe("third party common", () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
it("syncs and authenticates the user", async () => {
|
it("syncs and authenticates the user", async () => {
|
||||||
await authenticateThirdParty(thirdPartyUser, true, done, saveUser)
|
await authenticate(thirdPartyUser, true, saveUser)
|
||||||
|
|
||||||
const user = expectUserIsAuthenticated()
|
const user = expectUserIsAuthenticated()
|
||||||
expectUserIsSynced(user, thirdPartyUser)
|
expectUserIsSynced(user, thirdPartyUser)
|
||||||
expectUserIsUpdated(user)
|
expectUserIsUpdated(user)
|
||||||
|
|
|
@ -4063,7 +4063,7 @@ pouchdb-utils@7.2.2:
|
||||||
pouchdb-md5 "7.2.2"
|
pouchdb-md5 "7.2.2"
|
||||||
uuid "8.1.0"
|
uuid "8.1.0"
|
||||||
|
|
||||||
pouchdb@^7.3.0:
|
pouchdb@7.3.0:
|
||||||
version "7.3.0"
|
version "7.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/pouchdb/-/pouchdb-7.3.0.tgz#440fbef12dfd8f9002320802528665e883a3b7f8"
|
resolved "https://registry.yarnpkg.com/pouchdb/-/pouchdb-7.3.0.tgz#440fbef12dfd8f9002320802528665e883a3b7f8"
|
||||||
integrity sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw==
|
integrity sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw==
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue