Cleanup sqs flags from tests

This commit is contained in:
Adria Navarro 2024-10-21 15:37:42 +02:00
parent e7d4f90f1b
commit aeeb4b6b0f
2 changed files with 33 additions and 64 deletions

View File

@ -1,10 +1,6 @@
import * as setup from "../../../api/routes/tests/utilities" import * as setup from "../../../api/routes/tests/utilities"
import { basicTable } from "../../../tests/utilities/structures" import { basicTable } from "../../../tests/utilities/structures"
import { import { db as dbCore, SQLITE_DESIGN_DOC_ID } from "@budibase/backend-core"
db as dbCore,
features,
SQLITE_DESIGN_DOC_ID,
} from "@budibase/backend-core"
import { import {
LinkDocument, LinkDocument,
DocumentType, DocumentType,
@ -70,24 +66,14 @@ function oldLinkDocument(): Omit<LinkDocument, "tableId"> {
} }
} }
async function sqsDisabled(cb: () => Promise<void>) {
await features.testutils.withFeatureFlags("*", { SQS: false }, cb)
}
async function sqsEnabled(cb: () => Promise<void>) {
await features.testutils.withFeatureFlags("*", { SQS: true }, cb)
}
describe("SQS migration", () => { describe("SQS migration", () => {
beforeAll(async () => { beforeAll(async () => {
await sqsDisabled(async () => { await config.init()
await config.init() const table = await config.api.table.save(basicTable())
const table = await config.api.table.save(basicTable()) tableId = table._id!
tableId = table._id! const db = dbCore.getDB(config.appId!)
const db = dbCore.getDB(config.appId!) // old link document
// old link document await db.put(oldLinkDocument())
await db.put(oldLinkDocument())
})
}) })
beforeEach(async () => { beforeEach(async () => {
@ -101,43 +87,32 @@ describe("SQS migration", () => {
it("test migration runs as expected against an older DB", async () => { it("test migration runs as expected against an older DB", async () => {
const db = dbCore.getDB(config.appId!) const db = dbCore.getDB(config.appId!)
// confirm nothing exists initially
await sqsDisabled(async () => { // remove sqlite design doc to simulate it comes from an older installation
let error: any | undefined const doc = await db.get(SQLITE_DESIGN_DOC_ID)
try { await db.remove({ _id: doc._id, _rev: doc._rev })
await db.get(SQLITE_DESIGN_DOC_ID)
} catch (err: any) { await processMigrations(config.appId!, MIGRATIONS)
error = err const designDoc = await db.get<SQLiteDefinition>(SQLITE_DESIGN_DOC_ID)
} expect(designDoc.sql.tables).toBeDefined()
expect(error).toBeDefined() const mainTableDef = designDoc.sql.tables[tableId]
expect(error.status).toBe(404) expect(mainTableDef).toBeDefined()
expect(mainTableDef.fields[prefix("name")]).toEqual({
field: "name",
type: SQLiteType.TEXT,
})
expect(mainTableDef.fields[prefix("description")]).toEqual({
field: "description",
type: SQLiteType.TEXT,
}) })
await sqsEnabled(async () => { const { tableId1, tableId2, rowId1, rowId2 } = oldLinkDocInfo()
await processMigrations(config.appId!, MIGRATIONS) const linkDoc = await db.get<LinkDocument>(oldLinkDocID())
const designDoc = await db.get<SQLiteDefinition>(SQLITE_DESIGN_DOC_ID) expect(linkDoc.tableId).toEqual(generateJunctionTableID(tableId1, tableId2))
expect(designDoc.sql.tables).toBeDefined() // should have swapped the documents
const mainTableDef = designDoc.sql.tables[tableId] expect(linkDoc.doc1.tableId).toEqual(tableId2)
expect(mainTableDef).toBeDefined() expect(linkDoc.doc1.rowId).toEqual(rowId2)
expect(mainTableDef.fields[prefix("name")]).toEqual({ expect(linkDoc.doc2.tableId).toEqual(tableId1)
field: "name", expect(linkDoc.doc2.rowId).toEqual(rowId1)
type: SQLiteType.TEXT,
})
expect(mainTableDef.fields[prefix("description")]).toEqual({
field: "description",
type: SQLiteType.TEXT,
})
const { tableId1, tableId2, rowId1, rowId2 } = oldLinkDocInfo()
const linkDoc = await db.get<LinkDocument>(oldLinkDocID())
expect(linkDoc.tableId).toEqual(
generateJunctionTableID(tableId1, tableId2)
)
// should have swapped the documents
expect(linkDoc.doc1.tableId).toEqual(tableId2)
expect(linkDoc.doc1.rowId).toEqual(rowId2)
expect(linkDoc.doc2.tableId).toEqual(tableId1)
expect(linkDoc.doc2.rowId).toEqual(rowId1)
})
}) })
}) })

View File

@ -8,7 +8,7 @@ import {
} from "@budibase/types" } from "@budibase/types"
import { outputProcessing } from ".." import { outputProcessing } from ".."
import { generator, structures } from "@budibase/backend-core/tests" import { generator, structures } from "@budibase/backend-core/tests"
import { features } from "@budibase/backend-core"
import * as bbReferenceProcessor from "../bbReferenceProcessor" import * as bbReferenceProcessor from "../bbReferenceProcessor"
import TestConfiguration from "../../../tests/utilities/TestConfiguration" import TestConfiguration from "../../../tests/utilities/TestConfiguration"
@ -21,7 +21,6 @@ jest.mock("../bbReferenceProcessor", (): typeof bbReferenceProcessor => ({
describe("rowProcessor - outputProcessing", () => { describe("rowProcessor - outputProcessing", () => {
const config = new TestConfiguration() const config = new TestConfiguration()
let cleanupFlags: () => void = () => {}
beforeAll(async () => { beforeAll(async () => {
await config.init() await config.init()
@ -33,11 +32,6 @@ describe("rowProcessor - outputProcessing", () => {
beforeEach(() => { beforeEach(() => {
jest.resetAllMocks() jest.resetAllMocks()
cleanupFlags = features.testutils.setFeatureFlags("*", { SQS: true })
})
afterEach(() => {
cleanupFlags()
}) })
const processOutputBBReferenceMock = const processOutputBBReferenceMock =