1
0
Fork 0
mirror of synced 2024-09-09 14:11:30 +12:00

Merge pull request #10112 from Budibase/qa-16-get-qa-core-tests-ready-for-split-runs

Qa 16 get qa core tests ready for split runs
This commit is contained in:
Pedro Silva 2023-03-27 18:33:51 +01:00 committed by GitHub
commit 6bf6bbb9e2
3 changed files with 56 additions and 6 deletions

View file

@ -3,20 +3,32 @@
The QA Core API tests are a jest suite that run directly against the budibase backend APIs.
## Auto Setup
You can run the whole test suite with one command, that spins up the budibase server and runs the jest tests:
`yarn api:test`
`yarn api:test`
## Setup Server Only
You can also just stand up the budibase server alone.
`yarn api:server:setup`
`yarn api:server:setup`
## Run Tests
If you configured the server using the previous command, you can run the whole test suite by using:
`yarn test`
`yarn test`
for watch mode, where the tests will run on every change:
`yarn test:watch`
`yarn test:watch`
To run tests locally against a cloud service you can use the command:
`yarn run api:test:local`
To run the tests in CI, it assumes the correct environment variables are set, and the server is already running. Use the command:
`yarn run api:test:ci`
To run the nightly tests against the QA environment, use the command:
`yarn run api:test:nightly`

View file

@ -13,13 +13,15 @@
"test:watch": "env-cmd jest --watch",
"test:debug": "DEBUG=1 jest",
"test:notify": "node scripts/testResultsWebhook",
"test:ci": "jest --runInBand --json --outputFile=testResults.json",
"test:ci": "jest --runInBand --json --outputFile=testResults.json --testPathIgnorePatterns=\\\"\\/dataSources\\/\\\"",
"docker:up": "docker-compose up -d",
"docker:down": "docker-compose down",
"api:server:setup": "npm run docker:up && env-cmd ts-node ../packages/builder/ts/setup.ts",
"api:server:setup:ci": "env-cmd node ../packages/builder/setup.js",
"api:test:ci": "start-server-and-test api:server:setup:ci http://localhost:4100/builder test",
"api:test": "start-server-and-test api:server:setup http://localhost:4100/builder test"
"api:test": "start-server-and-test api:server:setup http://localhost:4100/builder test",
"api:test:local": "env-cmd jest --runInBand --testPathIgnorePatterns=\\\"\\/dataSources\\/\\\"",
"api:test:nightly": "env-cmd jest --runInBand --outputFile=testResults.json"
},
"jest": {
"preset": "ts-jest",

View file

@ -0,0 +1,36 @@
import TestConfiguration from "../../../config/internal-api/TestConfiguration"
import { App } from "@budibase/types"
import InternalAPIClient from "../../../config/internal-api/TestConfiguration/InternalAPIClient"
import AccountsAPIClient from "../../../config/internal-api/TestConfiguration/accountsAPIClient"
import { generateApp } from "../../../config/internal-api/fixtures/applications"
import { Screen } from "@budibase/types"
import generateScreen from "../../../config/internal-api/fixtures/screens"
describe("Internal API - Data Sources", () => {
const api = new InternalAPIClient()
const accountsAPI = new AccountsAPIClient()
const config = new TestConfiguration<Screen>(api, accountsAPI)
const appConfig = new TestConfiguration<App>(api, accountsAPI)
beforeAll(async () => {
await config.setupAccountAndTenant()
})
afterAll(async () => {
await config.afterAll()
})
it("Create an app with a data source", async () => {
// Create app
const app = await appConfig.applications.create(generateApp())
// Create Screen
const roleArray = ["BASIC", "POWER", "ADMIN", "PUBLIC"]
appConfig.applications.api.appId = app.appId
for (let role in roleArray) {
const [response, screen] = await config.screen.create(
generateScreen(roleArray[role])
)
}
})
})