Add setup for account and tenant creation
This commit is contained in:
parent
cfd05d0c68
commit
9f783fc6d6
|
@ -1,7 +1,6 @@
|
||||||
import { Response } from "node-fetch"
|
import { Response } from "node-fetch"
|
||||||
import { Table } from "@budibase/types"
|
import { Account } from "@budibase/types"
|
||||||
import InternalAPIClient from "./InternalAPIClient"
|
import InternalAPIClient from "./InternalAPIClient"
|
||||||
import { responseMessage } from "../fixtures/types/responseMessage"
|
|
||||||
|
|
||||||
export default class AccountsApi {
|
export default class AccountsApi {
|
||||||
api: InternalAPIClient
|
api: InternalAPIClient
|
||||||
|
@ -16,4 +15,18 @@ export default class AccountsApi {
|
||||||
expect(response).toHaveStatusCode(200)
|
expect(response).toHaveStatusCode(200)
|
||||||
return [response, json]
|
return [response, json]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async validateTenantId(tenantId: string): Promise<[Response, any]> {
|
||||||
|
const response = await this.api.post(`/accounts/validate/tenantId`, { body: { tenantId } })
|
||||||
|
const json = await response.json()
|
||||||
|
expect(response).toHaveStatusCode(200)
|
||||||
|
return [response, json]
|
||||||
|
}
|
||||||
|
|
||||||
|
async create(body: Account): Promise<[Response, Account]> {
|
||||||
|
const response = await this.api.post(`/accounts`, { body })
|
||||||
|
const json = await response.json()
|
||||||
|
expect(response).toHaveStatusCode(200)
|
||||||
|
return [response, json]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ import RowApi from "./rows"
|
||||||
import ScreenApi from "./screens"
|
import ScreenApi from "./screens"
|
||||||
import UserManagementApi from "./userManagement"
|
import UserManagementApi from "./userManagement"
|
||||||
import AccountsApi from "./accounts"
|
import AccountsApi from "./accounts"
|
||||||
|
import { generateAccount } from "../fixtures/accounts"
|
||||||
|
|
||||||
export default class TestConfiguration<T> {
|
export default class TestConfiguration<T> {
|
||||||
applications: ApplicationApi
|
applications: ApplicationApi
|
||||||
auth: AuthApi
|
auth: AuthApi
|
||||||
|
@ -31,6 +33,14 @@ export default class TestConfiguration<T> {
|
||||||
await this.auth.login(<string>process.env.BB_ADMIN_USER_EMAIL, <string>process.env.BB_ADMIN_USER_PASSWORD)
|
await this.auth.login(<string>process.env.BB_ADMIN_USER_EMAIL, <string>process.env.BB_ADMIN_USER_PASSWORD)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async setupAccountAndTenant() {
|
||||||
|
const account = generateAccount()
|
||||||
|
const [emailValidationResponse, emailValidationJson] = await this.accounts.validateEmail(account.email)
|
||||||
|
const [tenantIdValidationResponse, tenantIdValidationJson] = await this.accounts.validateTenantId(account.tenantId)
|
||||||
|
const [accountCreationResponse, accountCreationJson] = await this.accounts.create(account)
|
||||||
|
await this.auth.login(account.email, account.password)
|
||||||
|
}
|
||||||
|
|
||||||
async login(email: string, password: string) {
|
async login(email: string, password: string) {
|
||||||
await this.auth.login(email, password)
|
await this.auth.login(email, password)
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
import { Account } from "@budibase/types";
|
||||||
|
import generator from "../../generator";
|
||||||
|
|
||||||
|
export const generateAccount = (): Account => {
|
||||||
|
const randomGuid = generator.guid();
|
||||||
|
return {
|
||||||
|
email: `qa+${randomGuid}@budibase.com`,
|
||||||
|
hosting: "cloud",
|
||||||
|
name: `qa+${randomGuid}@budibase.com`,
|
||||||
|
password: `${randomGuid}`,
|
||||||
|
profession: "software_engineer",
|
||||||
|
size: "10+",
|
||||||
|
tenantId: `${randomGuid}`,
|
||||||
|
tenantName: `${randomGuid}`,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue