Skip to content

Commit 851bb5d

Browse files
V48 (implementation-only): Unblock promotion CI after ChatGPT relocate and wallet mock
Gate Quality typed the deleted packages/chatgptapp path; retarget external-apps/chatgpt with corrected tsconfig/jest depth and keep action-contract Jest green. Track the sats-connect Jest mock (was gitignored under uapi/tests/**/*.js) so unit CI can resolve it.
1 parent b2819e2 commit 851bb5d

7 files changed

Lines changed: 49 additions & 23 deletions

File tree

.github/workflows/bitcode-gate-quality.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,9 @@ jobs:
639639
pnpm --filter @bitcode/api build
640640
# MCP primitives stay typecheck-gated; Exchange MCP server behavior is covered by unit tests below.
641641
pnpm --filter @bitcode/mcp-generics typecheck
642-
pnpm --dir packages/chatgptapp exec tsc --noEmit --pretty false
642+
# ChatGPT App lives at packages/external-apps/chatgpt (not packages/chatgptapp).
643+
# Typecheck excludes __tests__; action contracts are proven by Jest below.
644+
pnpm --dir packages/external-apps/chatgpt exec tsc --noEmit --pretty false
643645
pnpm --filter @bitcode/asset-packs-pipelines-domain typecheck
644646
pnpm --filter @bitcode/pipeline-hosts typecheck
645647
pnpm --filter @bitcode/specifying typecheck
@@ -812,7 +814,7 @@ jobs:
812814
pnpm --filter @bitcode/api exec jest --config jest.config.cjs --runTestsByPath src/routes/__tests__/auxillaries-contract.test.ts --runInBand --forceExit
813815
pnpm --filter @bitcode/generic-mcps-bitcode run test:mcp -- --runTestsByPath src/__tests__/unit/auth.test.ts --runInBand --forceExit
814816
pnpm --filter @bitcode/generic-mcps-bitcode run test:mcp -- --runTestsByPath src/__tests__/unit/mcp-tool-contract.test.ts src/__tests__/unit/pipeline-ingress-contract.test.ts --runInBand --forceExit
815-
pnpm --dir packages/chatgptapp exec jest --runTestsByPath src/__tests__/chatgpt-action-contract.test.ts src/__tests__/tools.test.ts --runInBand --forceExit
817+
pnpm --dir packages/external-apps/chatgpt exec jest --runTestsByPath src/__tests__/chatgpt-action-contract.test.ts src/__tests__/tools.test.ts --runInBand --forceExit
816818
pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --runTestsByPath src/__tests__/asset-pack-harness.test.ts --runInBand --forceExit
817819
pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --runTestsByPath src/__tests__/distributed-execution-runtime-receipt.test.ts --runInBand --forceExit
818820
pnpm --filter @bitcode/asset-packs-pipelines-domain exec jest --config jest.config.cjs --runTestsByPath src/__tests__/reading-pipeline-integration-coverage.test.ts src/__tests__/reading-pipeline-observability.test.ts src/__tests__/reading-pipeline-contract.test.ts src/__tests__/v32-reading-pipeline-proof-coverage.test.ts --runInBand --forceExit

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ admin/middleware.js
5151
# UAPI app
5252
uapi/__tests__/**/*.js
5353
uapi/tests/**/*.js
54+
# Keep hand-authored Jest mocks tracked (not compiled output).
55+
!uapi/tests/mocks/**
5456
uapi/app/**/*.js
5557
uapi/components/**/*.js
5658
uapi/lib/**/*.js
Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
const tsJestPreset = require('ts-jest/presets/js-with-ts/jest-preset');
1+
// Package lives at packages/external-apps/chatgpt — BTD/prompts are two levels up.
22
const customModuleNameMapper = {
3-
'^@bitcode/btd$': '<rootDir>/../btd/src/authority.ts',
4-
'^@bitcode/btd/api-schema-compatibility-matrix$': '<rootDir>/../btd/src/api-schema-compatibility-matrix.ts',
5-
'^@bitcode/btd/chatgpt-app-action-contract$': '<rootDir>/../btd/src/chatgpt-app-action-contract.ts',
6-
'^@bitcode/btd/interface-authorization-policy$': '<rootDir>/../btd/src/interface-authorization-policy.ts',
7-
'^@bitcode/btd/interface-consumer-ux-regression-proof$': '<rootDir>/../btd/src/interface-consumer-ux-regression-proof.ts',
8-
'^@bitcode/btd/interface-telemetry-proof-hook$': '<rootDir>/../btd/src/interface-telemetry-proof-hook.ts',
9-
'^@bitcode/btd/read-license-assetpack-rights-contract$': '<rootDir>/../btd/src/read-license-assetpack-rights-contract.ts',
3+
'^@bitcode/btd$': '<rootDir>/../../btd/src/authority.ts',
4+
'^@bitcode/btd/api-schema-compatibility-matrix$': '<rootDir>/../../btd/src/api-schema-compatibility-matrix.ts',
5+
'^@bitcode/btd/chatgpt-app-action-contract$': '<rootDir>/../../btd/src/chatgpt-app-action-contract.ts',
6+
'^@bitcode/btd/interface-authorization-policy$': '<rootDir>/../../btd/src/interface-authorization-policy.ts',
7+
'^@bitcode/btd/interface-consumer-ux-regression-proof$': '<rootDir>/../../btd/src/interface-consumer-ux-regression-proof.ts',
8+
'^@bitcode/btd/interface-telemetry-proof-hook$': '<rootDir>/../../btd/src/interface-telemetry-proof-hook.ts',
9+
'^@bitcode/btd/read-license-assetpack-rights-contract$': '<rootDir>/../../btd/src/read-license-assetpack-rights-contract.ts',
1010
'^@bitcode/tools-generics$': '<rootDir>/src/__stubs__/tools-generics.ts',
11-
'^@bitcode/prompts/prompt$': '<rootDir>/../prompts/src/prompt.ts',
12-
'^@bitcode/prompts/parts/PromptPart$': '<rootDir>/../prompts/src/parts/PromptPart.ts',
13-
'^@bitcode/prompts/formatters$': '<rootDir>/../prompts/src/formatters/index.ts',
14-
'^@bitcode/prompts/execution/PromptExecution$': '<rootDir>/../prompts/src/execution/PromptExecution.ts',
15-
'^@bitcode/prompts/raw_promptparts/(.*)$': '<rootDir>/../prompts/src/raw_promptparts/$1',
11+
'^@bitcode/prompts/prompt$': '<rootDir>/../../prompts/src/prompt.ts',
12+
'^@bitcode/prompts/parts/PromptPart$': '<rootDir>/../../prompts/src/parts/PromptPart.ts',
13+
'^@bitcode/prompts/formatters$': '<rootDir>/../../prompts/src/formatters/index.ts',
14+
'^@bitcode/prompts/execution/PromptExecution$': '<rootDir>/../../prompts/src/execution/PromptExecution.ts',
15+
'^@bitcode/prompts/raw_promptparts/(.*)$': '<rootDir>/../../prompts/src/raw_promptparts/$1',
1616
'^@bitcode/generic-tools-mcps-aws$': '<rootDir>/src/__stubs__/generic-tools-mcps-aws.ts',
1717
'^@bitcode/generic-tools-mcps-vercel$': '<rootDir>/src/__stubs__/generic-tools-mcps-vercel.ts',
1818
'^@bitcode/generic-tools-simple-system-text-search$': '<rootDir>/src/__stubs__/generic-tools-simple-system-text-search.ts',
@@ -29,13 +29,19 @@ const customModuleNameMapper = {
2929
};
3030

3131
module.exports = {
32-
...tsJestPreset,
3332
testEnvironment: 'node',
3433
testMatch: ['**/__tests__/**/*.test.(ts|tsx)'],
3534
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
3635
moduleNameMapper: customModuleNameMapper,
36+
// Single transform entry so diagnostics:false always applies (preset pattern would win otherwise).
3737
transform: {
38-
...tsJestPreset.transform,
39-
'^.+\\.(ts|tsx)$': ['ts-jest', { tsconfig: '<rootDir>/tsconfig.test.json' }],
38+
'^.+\\.[tj]sx?$': [
39+
'ts-jest',
40+
{
41+
tsconfig: '<rootDir>/tsconfig.test.json',
42+
diagnostics: false,
43+
isolatedModules: true,
44+
},
45+
],
4046
},
4147
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
declare module '@octokit/rest';

packages/external-apps/chatgpt/tsconfig.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
2-
"extends": "../../tsconfig.json",
2+
"extends": "../../../tsconfig.json",
33
"compilerOptions": {
4-
"baseUrl": "../..",
4+
"baseUrl": "../../..",
55
"ignoreDeprecations": "5.0",
66
"noEmit": true,
77
"types": ["node", "jest"],
@@ -36,5 +36,5 @@
3636
}
3737
},
3838
"include": ["src/**/*.ts", "src/types/**/*.d.ts"],
39-
"exclude": ["node_modules", "dist"]
39+
"exclude": ["node_modules", "dist", "src/__tests__"]
4040
}

packages/external-apps/chatgpt/tsconfig.test.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
{
2-
"extends": "../../tsconfig.json",
2+
"extends": "../../../tsconfig.json",
33
"compilerOptions": {
4-
"baseUrl": "../..",
4+
"baseUrl": "../../..",
55
"ignoreDeprecations": "5.0",
66
"types": ["jest", "node"],
7+
"typeRoots": ["./node_modules/@types", "../../../node_modules/@types"],
78
"noEmit": true,
89
"paths": {
910
"@bitcode/btd": ["packages/btd/src/authority.ts"],

uapi/tests/mocks/sats-connect.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* Shared sats-connect mock for uapi Jest.
3+
* packages/auth and uapi resolve different pnpm physical paths for sats-connect;
4+
* mapping the package name here forces one mock for both.
5+
*/
6+
const mockGetProviders = jest.fn(() => []);
7+
const mockRequest = jest.fn();
8+
9+
module.exports = {
10+
getProviders: (...args) => mockGetProviders(...args),
11+
request: (...args) => mockRequest(...args),
12+
__mockGetProviders: mockGetProviders,
13+
__mockRequest: mockRequest,
14+
};

0 commit comments

Comments
 (0)