Skip to content

Commit d17fedf

Browse files
committed
Fix browser FileMaker scaffold and fmdapi e2e tests
1 parent 2e21a65 commit d17fedf

8 files changed

Lines changed: 50 additions & 16 deletions

File tree

env.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ export type CoercedEnvSchema = {
3232
FM_SERVER: string;
3333

3434
/**
35-
* **g**
35+
* **FM_DATABASE**
3636
* Canonical FileMaker database name used across fmdapi, fmodata, typegen,
3737
* CLI templates, and integration tests. Usually ends in `.fmp12`.
3838
* ![icon](data:image/svg+xml;utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22%23808080%22%20d%3D%22M29%2022h-5a2.003%202.003%200%200%201-2-2v-6a2%202%200%200%201%202-2h5v2h-5v6h5ZM18%2012h-4V8h-2v14h6a2.003%202.003%200%200%200%202-2v-6a2%202%200%200%200-2-2m-4%208v-6h4v6Zm-6-8H3v2h5v2H4a2%202%200%200%200-2%202v2a2%202%200%200%200%202%202h6v-8a2%202%200%200%200-2-2m0%208H4v-2h4Z%22%2F%3E%3C%2Fsvg%3E)
3939
*/
40-
g: string;
40+
FM_DATABASE: string;
4141

4242
/**
4343
* **FM_USERNAME**
@@ -199,7 +199,7 @@ export type CoercedEnvSchema = {
199199

200200
declare module 'varlock/env' {
201201
export interface TypedEnvSchema extends Readonly<CoercedEnvSchema> {}
202-
export interface PublicTypedEnvSchema extends Readonly<Pick<CoercedEnvSchema, 'APP_ENV' | 'FM_SERVER' | 'g' | 'FM_USERNAME' | 'FMODATA_SERVER_URL' | 'FMODATA_USERNAME' | 'FMODATA_DATABASE' | 'OTTO_SERVER_URL' | 'FM_FILE_NAME' | 'FM_LAYOUT_NAME' | 'DIFFERENT_FM_SERVER' | 'DIFFERENT_FM_DATABASE' | 'DIFFERENT_FM_USERNAME' | 'FM_MCP_BASE_URL' | 'PROOFKIT_ALLOW_INSECURE_TLS'>> {}
202+
export interface PublicTypedEnvSchema extends Readonly<Pick<CoercedEnvSchema, 'APP_ENV' | 'FM_SERVER' | 'FM_DATABASE' | 'FM_USERNAME' | 'FMODATA_SERVER_URL' | 'FMODATA_USERNAME' | 'FMODATA_DATABASE' | 'OTTO_SERVER_URL' | 'FM_FILE_NAME' | 'FM_LAYOUT_NAME' | 'DIFFERENT_FM_SERVER' | 'DIFFERENT_FM_DATABASE' | 'DIFFERENT_FM_USERNAME' | 'FM_MCP_BASE_URL' | 'PROOFKIT_ALLOW_INSECURE_TLS'>> {}
203203
}
204204

205205

packages/cli/src/core/planInit.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ export function planInit(
5959
Object.assign(packageJson.dependencies, sharedUiDependencies);
6060
packageJson.dependencies["@tailwindcss/postcss"] = "^4.1.10";
6161
packageJson.dependencies["next-themes"] = "^0.4.6";
62+
if (request.dataSource === "filemaker") {
63+
packageJson.dependencies["@proofkit/fmdapi"] = releaseTag;
64+
packageJson.dependencies.zod = "^4";
65+
}
6266
}
6367

6468
if (request.appType === "webviewer") {

packages/cli/tests/browser-apps.smoke.test.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,15 @@ describeWhenSmokeEnvPresent("External integration smoke tests (non-interactive C
5454
`node "${cliPath}" init`,
5555
projectName,
5656
"--non-interactive",
57-
"--appType browser",
58-
"--dataSource filemaker",
57+
"--app-type browser",
58+
"--data-source filemaker",
5959
`--server "${testEnv.OTTO_SERVER_URL}"`,
60-
`--adminApiKey "${testEnv.OTTO_ADMIN_API_KEY}"`,
61-
`--dataApiKey "${testEnv.FM_DATA_API_KEY}"`,
62-
`--fileName "${testEnv.FM_FILE_NAME}"`,
63-
`--layoutName "${testEnv.FM_LAYOUT_NAME}"`,
64-
"--noGit", // Skip git initialization for testing
60+
`--admin-api-key "${testEnv.OTTO_ADMIN_API_KEY}"`,
61+
`--data-api-key "${testEnv.FM_DATA_API_KEY}"`,
62+
`--file-name "${testEnv.FM_FILE_NAME}"`,
63+
`--layout-name "${testEnv.FM_LAYOUT_NAME}"`,
64+
"--schema-name Contacts",
65+
"--no-git", // Skip git initialization for testing
6566
].join(" ");
6667

6768
// Execute the command

packages/cli/tests/planner.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,21 @@ describe("planInit", () => {
4141
expect(plan.tasks.checkWebViewerAddon).toBe(true);
4242
});
4343

44+
it("adds fmdapi for browser filemaker scaffolds", () => {
45+
const plan = planInit(
46+
makeInitRequest({
47+
appType: "browser",
48+
dataSource: "filemaker",
49+
}),
50+
{
51+
templateDir: "/templates/browser",
52+
},
53+
);
54+
55+
expect(plan.packageJson.dependencies["@proofkit/fmdapi"]).toBe("beta");
56+
expect(plan.packageJson.dependencies.zod).toBe("^4");
57+
});
58+
4459
it("plans filemaker bootstrap and initial codegen when inputs are explicit", () => {
4560
const plan = planInit(
4661
makeInitRequest({

packages/fmdapi/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"dev": "tsc --watch",
4949
"ci": "pnpm build && pnpm check-format && pnpm publint --strict && pnpm test",
5050
"test": "vitest run",
51-
"test:e2e": "varlock run -- vitest run tests/e2e",
51+
"test:e2e": "varlock run -- vitest run --config vitest.e2e.config.ts",
5252
"capture": "varlock run -- npx tsx scripts/capture-responses.ts",
5353
"typecheck": "tsc --noEmit",
5454
"changeset": "changeset",

packages/fmdapi/tests/e2e/client-methods.test.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import { describe, expect, it, test } from "vitest";
2-
import { DataApi, OttoAdapter } from "../src";
3-
import type { AllLayoutsMetadataResponse, Layout, ScriptOrFolder, ScriptsMetadataResponse } from "../src/client-types";
4-
import { config, containerClient, layoutClient, weirdPortalClient } from "./setup";
2+
import { DataApi, OttoAdapter } from "../../src";
3+
import type {
4+
AllLayoutsMetadataResponse,
5+
Layout,
6+
ScriptOrFolder,
7+
ScriptsMetadataResponse,
8+
} from "../../src/client-types";
9+
import { config, containerClient, layoutClient, weirdPortalClient } from "../setup";
510

611
describe("sort methods", () => {
712
test("should sort descending", async () => {

packages/fmdapi/tests/e2e/zod.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { describe, expect, it } from "vitest";
22
import { z } from "zod/v4";
3-
import { DataApi, OttoAdapter } from "../src";
4-
import { config } from "./setup";
3+
import { DataApi, OttoAdapter } from "../../src";
4+
import { config } from "../setup";
55

66
const ZCustomer = z.object({ name: z.string(), phone: z.string() });
77
const ZPortalTable = z.object({
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { defineConfig } from "vitest/config";
2+
3+
export default defineConfig({
4+
test: {
5+
testTimeout: 15_000,
6+
include: ["tests/e2e/**/*.{test,spec}.?(c|m)[jt]s?(x)"],
7+
exclude: ["**/node_modules/**", "**/dist/**"],
8+
},
9+
});

0 commit comments

Comments
 (0)