Add tests

This commit is contained in:
Adria Navarro 2023-12-11 13:19:07 +01:00
parent 9396c2fd6a
commit 2a92263df5
2 changed files with 42 additions and 11 deletions

View File

@ -1,17 +1,15 @@
import { Header } from "@budibase/backend-core"
import * as setup from "../../api/routes/tests/utilities" import * as setup from "../../api/routes/tests/utilities"
import * as migrations from "../migrations" import * as migrations from "../migrations"
import { getAppMigrationVersion } from "../appMigrationMetadata" import { getAppMigrationVersion } from "../appMigrationMetadata"
import { AppMigration } from ".."
const mockedMigrations: AppMigration[] = [ jest.mock<typeof migrations>("../migrations", () => ({
MIGRATIONS: [
{ {
id: "20231211101320_test", id: "20231211101320_test",
func: async () => {}, func: async () => {},
}, },
] ],
jest.doMock<typeof migrations>("../migrations", () => ({
MIGRATIONS: mockedMigrations,
})) }))
describe("migrations", () => { describe("migrations", () => {
@ -25,4 +23,31 @@ describe("migrations", () => {
expect(migrationVersion).toEqual("20231211101320_test") expect(migrationVersion).toEqual("20231211101320_test")
}) })
}) })
it("accessing an app that has no pending migrations will not attach the migrating header", async () => {
const config = setup.getConfig()
await config.init()
const appId = config.getAppId()
const response = await config.api.application.getRaw(appId)
expect(response.headers[Header.MIGRATING_APP]).toBeUndefined()
})
it("accessing an app that has pending migrations will attach the migrating header", async () => {
const config = setup.getConfig()
await config.init()
const appId = config.getAppId()
migrations.MIGRATIONS.push({
id: "20231211105812_new-test",
func: async () => {},
})
const response = await config.api.application.getRaw(appId)
expect(response.headers[Header.MIGRATING_APP]).toEqual(appId)
})
}) })

View File

@ -1,3 +1,4 @@
import { Response } from "supertest"
import { App } from "@budibase/types" import { App } from "@budibase/types"
import TestConfiguration from "../TestConfiguration" import TestConfiguration from "../TestConfiguration"
import { TestAPI } from "./base" import { TestAPI } from "./base"
@ -7,12 +8,17 @@ export class ApplicationAPI extends TestAPI {
super(config) super(config)
} }
get = async (appId: string): Promise<App> => { getRaw = async (appId: string): Promise<Response> => {
const result = await this.request const result = await this.request
.get(`/api/applications/${appId}/appPackage`) .get(`/api/applications/${appId}/appPackage`)
.set(this.config.defaultHeaders()) .set(this.config.defaultHeaders())
.expect("Content-Type", /json/) .expect("Content-Type", /json/)
.expect(200) .expect(200)
return result
}
get = async (appId: string): Promise<App> => {
const result = await this.getRaw(appId)
return result.body.application as App return result.body.application as App
} }
} }