diff --git a/packages/builder/src/components/design/settings/controls/GridColumnConfiguration/GridColumnConfiguration.svelte b/packages/builder/src/components/design/settings/controls/GridColumnConfiguration/GridColumnConfiguration.svelte index 439bf5e261..19d61e1f2a 100644 --- a/packages/builder/src/components/design/settings/controls/GridColumnConfiguration/GridColumnConfiguration.svelte +++ b/packages/builder/src/components/design/settings/controls/GridColumnConfiguration/GridColumnConfiguration.svelte @@ -34,7 +34,7 @@ $selectedScreen, datasource )?.table?.primaryDisplay - $: schema = getSchema(selectedScreen, datasource) + $: schema = getSchema($selectedScreen, datasource) $: columns = getColumns({ columns: value, schema, diff --git a/packages/client/manifest.json b/packages/client/manifest.json index a056f59cc7..4ffe979c7d 100644 --- a/packages/client/manifest.json +++ b/packages/client/manifest.json @@ -6011,7 +6011,7 @@ "block": true, "name": "Repeater Block", "icon": "ViewList", - "illegalChildren": ["section"], + "illegalChildren": ["section", "rowexplorer"], "hasChildren": true, "size": { "width": 400, diff --git a/packages/client/src/components/app/GridBlock.svelte b/packages/client/src/components/app/GridBlock.svelte index 085449a5b0..0ee2cf1487 100644 --- a/packages/client/src/components/app/GridBlock.svelte +++ b/packages/client/src/components/app/GridBlock.svelte @@ -147,7 +147,8 @@ border: 1px solid var(--spectrum-global-color-gray-300); border-radius: 4px; overflow: hidden; - min-height: 410px; + min-height: 230px; + height: 410px; } div.in-builder :global(*) { pointer-events: none; diff --git a/packages/server/src/api/routes/tests/search.spec.ts b/packages/server/src/api/routes/tests/search.spec.ts index a281d624dc..2b08f9afc1 100644 --- a/packages/server/src/api/routes/tests/search.spec.ts +++ b/packages/server/src/api/routes/tests/search.spec.ts @@ -2,7 +2,7 @@ import { tableForDatasource } from "../../../tests/utilities/structures" import { DatabaseName, getDatasource } from "../../../integrations/tests/utils" import * as setup from "./utilities" -import { Datasource, FieldType, Table } from "@budibase/types" +import { Datasource, FieldType, SearchFilters, Table } from "@budibase/types" jest.unmock("mssql") @@ -53,22 +53,38 @@ describe.each([ ) }) - it("should return rows", async () => { - const rows = await Promise.all([ - config.api.row.save(table._id!, { name: "foo" }), - config.api.row.save(table._id!, { name: "bar" }), - ]) + describe("strings", () => { + const rows = [{ name: "foo" }, { name: "bar" }] - const result = await config.api.row.search(table._id!, { - tableId: table._id!, - query: {}, - }) + interface StringSearchTest { + query: SearchFilters + expected: (typeof rows)[number][] + } - expect(result.rows).toEqual( - expect.arrayContaining([ - expect.objectContaining({ _id: rows[0]._id }), - expect.objectContaining({ _id: rows[1]._id }), - ]) + const stringSearchTests: StringSearchTest[] = [ + { query: {}, expected: rows }, + { query: { string: { name: "foo" } }, expected: [rows[0]] }, + { query: { fuzzy: { name: "oo" } }, expected: [rows[0]] }, + { query: { equal: { name: "foo" } }, expected: [rows[0]] }, + { query: { notEqual: { name: "foo" } }, expected: [rows[1]] }, + { query: { oneOf: { name: ["foo"] } }, expected: [rows[0]] }, + // { query: { contains: { name: "f" } }, expected: [0] }, + // { query: { notContains: { name: ["f"] } }, expected: [1] }, + // { query: { containsAny: { name: ["f"] } }, expected: [0] }, + ] + + it.each(stringSearchTests)( + `should be able to run query: $query`, + async ({ query, expected }) => { + await Promise.all(rows.map(r => config.api.row.save(table._id!, r))) + const { rows: foundRows } = await config.api.row.search(table._id!, { + tableId: table._id!, + query, + }) + expect(foundRows).toEqual( + expect.arrayContaining(expected.map(r => expect.objectContaining(r))) + ) + } ) }) })