Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion biome.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/2.2.6/schema.json",
"$schema": "https://biomejs.dev/schemas/2.3.6/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
},
"packageManager": "[email protected]",
"devDependencies": {
"@biomejs/biome": "2.2.6",
"@biomejs/biome": "2.3.6",
"@tanstack/config": "^0.22.0",
"@types/node": "^24.10.1",
"memfs": "^4.51.0",
Expand Down
74 changes: 37 additions & 37 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

98 changes: 49 additions & 49 deletions tests/generate.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,65 +43,65 @@ describe('generate', () => {
expect(fileExists(`${OUTPUT_DIR}/${serviceName}/${serviceName}.d.ts`)).toBe(false);
});

it.each(['hello_world', 'example'])(
'should generate a bindgen with interface declaration',
async (serviceName) => {
const didFile = `${TESTS_ASSETS_DIR}/${serviceName}.did`;
it.each([
'hello_world',
'example',
])('should generate a bindgen with interface declaration', async (serviceName) => {
const didFile = `${TESTS_ASSETS_DIR}/${serviceName}.did`;

await generate({
didFile,
outDir: OUTPUT_DIR,
output: { actor: { interfaceFile: true } },
});
await generate({
didFile,
outDir: OUTPUT_DIR,
output: { actor: { interfaceFile: true } },
});

await expectGeneratedOutput(SNAPSHOTS_DIR, serviceName);
await expectGeneratedOutput(SNAPSHOTS_DIR, serviceName);

const interfaceTs = await readFileFromOutput(`${serviceName}.d.ts`);
await expect(interfaceTs).toMatchFileSnapshot(
`${SNAPSHOTS_DIR}/${serviceName}/${serviceName}.d.ts.snapshot`,
);
},
);
const interfaceTs = await readFileFromOutput(`${serviceName}.d.ts`);
await expect(interfaceTs).toMatchFileSnapshot(
`${SNAPSHOTS_DIR}/${serviceName}/${serviceName}.d.ts.snapshot`,
);
});

it.each(['hello_world', 'example'])(
'should generate a bindgen with declarations only',
async (serviceName) => {
const didFile = `${TESTS_ASSETS_DIR}/${serviceName}.did`;
it.each([
'hello_world',
'example',
])('should generate a bindgen with declarations only', async (serviceName) => {
const didFile = `${TESTS_ASSETS_DIR}/${serviceName}.did`;

await generate({
didFile,
outDir: OUTPUT_DIR,
output: { actor: { disabled: true } },
});
await generate({
didFile,
outDir: OUTPUT_DIR,
output: { actor: { disabled: true } },
});

await expectGeneratedDeclarations(SNAPSHOTS_DIR, serviceName);
expect(fileExists(`${OUTPUT_DIR}/${serviceName}/${serviceName}.d.ts`)).toBe(false);
expect(fileExists(`${OUTPUT_DIR}/${serviceName}/${serviceName}.ts`)).toBe(false);
},
);
await expectGeneratedDeclarations(SNAPSHOTS_DIR, serviceName);
expect(fileExists(`${OUTPUT_DIR}/${serviceName}/${serviceName}.d.ts`)).toBe(false);
expect(fileExists(`${OUTPUT_DIR}/${serviceName}/${serviceName}.ts`)).toBe(false);
});

it.each(['hello_world', 'example'])(
'should ignore other options when generating a bindgen with actor disabled',
async (serviceName) => {
const didFile = `${TESTS_ASSETS_DIR}/${serviceName}.did`;
it.each([
'hello_world',
'example',
])('should ignore other options when generating a bindgen with actor disabled', async (serviceName) => {
const didFile = `${TESTS_ASSETS_DIR}/${serviceName}.did`;

await generate({
didFile,
outDir: OUTPUT_DIR,
output: {
actor: {
disabled: true,
// @ts-expect-error - the interface does not allow this, but we want to test that it is ignored at runtime
interfaceFile: true,
},
await generate({
didFile,
outDir: OUTPUT_DIR,
output: {
actor: {
disabled: true,
// @ts-expect-error - the interface does not allow this, but we want to test that it is ignored at runtime
interfaceFile: true,
},
});
},
});

await expectGeneratedDeclarations(SNAPSHOTS_DIR, serviceName);
expect(fileExists(`${OUTPUT_DIR}/${serviceName}/${serviceName}.d.ts`)).toBe(false);
expect(fileExists(`${OUTPUT_DIR}/${serviceName}/${serviceName}.ts`)).toBe(false);
},
);
await expectGeneratedDeclarations(SNAPSHOTS_DIR, serviceName);
expect(fileExists(`${OUTPUT_DIR}/${serviceName}/${serviceName}.d.ts`)).toBe(false);
expect(fileExists(`${OUTPUT_DIR}/${serviceName}/${serviceName}.ts`)).toBe(false);
});

it('should preserve the .did file', async () => {
const { readFile: realReadFile } =
Expand Down
Loading