Creating structures for testing usage endpoint.

This commit is contained in:
mike12345567 2025-01-31 17:46:43 +00:00
parent 1d324744e0
commit d6fb87dce0
3 changed files with 203 additions and 3 deletions

View File

@ -3,7 +3,8 @@ import * as setup from "./utilities"
import { events, roles } from "@budibase/backend-core" import { events, roles } from "@budibase/backend-core"
import { Screen, Role, BuiltinPermissionID } from "@budibase/types" import { Screen, Role, BuiltinPermissionID } from "@budibase/types"
const { basicScreen } = setup.structures const { basicScreen, tableScreen, viewScreen, queryScreen, basicTable } =
setup.structures
describe("/screens", () => { describe("/screens", () => {
let config = setup.getConfig() let config = setup.getConfig()
@ -186,4 +187,11 @@ describe("/screens", () => {
}) })
}) })
}) })
describe("usage", () => {
it("should find table usage", async () => {
const table = await config.api.table.save(basicTable(), { status: 200 })
const tableScreen = await config.api.screen.save(tableScreen())
})
})
}) })

View File

@ -1,6 +1,6 @@
import { roles } from "@budibase/backend-core" import { roles } from "@budibase/backend-core"
import { BASE_LAYOUT_PROP_IDS } from "./layouts" import { BASE_LAYOUT_PROP_IDS } from "./layouts"
import { Screen } from "@budibase/types" import { Screen, Table, Query, ViewV2 } from "@budibase/types"
export function createHomeScreen( export function createHomeScreen(
config: { config: {
@ -53,3 +53,177 @@ export function createHomeScreen(
name: "home-screen", name: "home-screen",
} }
} }
function heading(text: string) {
return {
_id: "c1bff24cd821e41d18c894ac77a80ef99",
_component: "@budibase/standard-components/heading",
_styles: {
normal: {},
hover: {},
active: {},
selected: {},
},
_instanceName: "Table heading",
_children: [],
text,
}
}
export function createTableScreen(
datasourceName: string,
table: Table
): Screen {
return {
props: {
_id: "cad0a0904cacd4678a2ac094e293db1a5",
_component: "@budibase/standard-components/container",
_styles: {
normal: {},
hover: {},
active: {},
selected: {},
},
_children: [
heading("table"),
{
_id: "ca6304be2079147bb9933092c4f8ce6fa",
_component: "@budibase/standard-components/gridblock",
_styles: {
normal: {},
hover: {},
active: {},
selected: {},
},
_instanceName: "table - Table",
_children: [],
table: {
label: table.name,
tableId: table._id!,
type: "table",
datasourceName,
},
},
],
_instanceName: "table - List",
layout: "grid",
direction: "column",
hAlign: "stretch",
vAlign: "top",
size: "grow",
gap: "M",
},
routing: {
route: "/table",
roleId: "ADMIN",
homeScreen: false,
},
name: "screen-id",
}
}
export function createViewScreen(datasourceName: string, view: ViewV2): Screen {
return {
props: {
_id: "cc359092bbd6c4e10b57827155edb7872",
_component: "@budibase/standard-components/container",
_styles: {
normal: {},
hover: {},
active: {},
selected: {},
},
_children: [
heading("view"),
{
_id: "ccb4a9e3734794864b5c65b012a0bdc5a",
_component: "@budibase/standard-components/gridblock",
_styles: {
normal: {},
hover: {},
active: {},
selected: {},
},
_instanceName: "view - Table",
_children: [],
table: {
...view,
name: view.name,
tableId: view.tableId,
id: view.id,
label: view.name,
type: "viewV2",
},
},
],
_instanceName: "view - List",
layout: "grid",
direction: "column",
hAlign: "stretch",
vAlign: "top",
size: "grow",
gap: "M",
},
routing: {
route: "/view",
roleId: "ADMIN",
homeScreen: false,
},
name: "view-id",
}
}
export function createQueryScreen(datasourceId: string, query: Query): Screen {
return {
props: {
_id: "cc59b217aed264939a6c5249eee39cb25",
_component: "@budibase/standard-components/container",
_styles: {
normal: {},
hover: {},
active: {},
selected: {},
},
_children: [
{
_id: "c33a4a6e3cb5343158a08625c06b5cd7c",
_component: "@budibase/standard-components/gridblock",
_styles: {
normal: {},
hover: {},
active: {},
},
_instanceName: "New Table",
table: {
...query,
label: query.name,
_id: query._id!,
name: query.name,
datasourceId: datasourceId,
type: "query",
},
initialSortOrder: "Ascending",
allowAddRows: true,
allowEditRows: true,
allowDeleteRows: true,
stripeRows: false,
quiet: false,
columns: null,
},
],
_instanceName: "Blank screen",
layout: "grid",
direction: "column",
hAlign: "stretch",
vAlign: "top",
size: "grow",
gap: "M",
},
routing: {
route: "/query",
roleId: "BASIC",
homeScreen: false,
},
name: "screen-id",
}
}

View File

@ -1,5 +1,10 @@
import { roles, utils } from "@budibase/backend-core" import { roles, utils } from "@budibase/backend-core"
import { createHomeScreen } from "../../constants/screens" import {
createHomeScreen,
createTableScreen,
createQueryScreen,
createViewScreen,
} from "../../constants/screens"
import { EMPTY_LAYOUT } from "../../constants/layouts" import { EMPTY_LAYOUT } from "../../constants/layouts"
import { cloneDeep } from "lodash/fp" import { cloneDeep } from "lodash/fp"
import { import {
@ -35,6 +40,7 @@ import {
WebhookActionType, WebhookActionType,
BuiltinPermissionID, BuiltinPermissionID,
DeepPartial, DeepPartial,
ViewV2,
} from "@budibase/types" } from "@budibase/types"
import { LoopInput } from "../../definitions/automations" import { LoopInput } from "../../definitions/automations"
import { merge } from "lodash" import { merge } from "lodash"
@ -599,6 +605,18 @@ export function basicScreen(route = "/") {
}) })
} }
export function tableScreen(datasourceName: string, table: Table) {
return createTableScreen(datasourceName, table)
}
export function viewScreen(datasourceName: string, view: ViewV2) {
return createViewScreen(datasourceName, view)
}
export function queryScreen(datasourceId: string, query: Query) {
return createQueryScreen(datasourceId, query)
}
export function powerScreen(route = "/") { export function powerScreen(route = "/") {
return createHomeScreen({ return createHomeScreen({
roleId: BUILTIN_ROLE_IDS.POWER, roleId: BUILTIN_ROLE_IDS.POWER,