Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,11 @@ coverage
dist/*
*.log
.nx/
regions.json
regions.json

# Build artifacts (compiled .js from .ts)
src/**/*.js
src/**/*.d.ts
!src/**/*.ts
test/**/*.js
!test/**/*.spec.js
7 changes: 7 additions & 0 deletions jest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ export default {
// branches: 95,
// }
},
// Use single worker to avoid circular JSON serialization issues with error objects
// This prevents "Jest worker encountered 4 child process exceptions" errors
maxWorkers: 1,
// Increase timeout for integration tests that may take longer
testTimeout: 30000,
// Global setup file to suppress expected SDK validation errors
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
reporters: [
"default",
[
Expand Down
18 changes: 15 additions & 3 deletions jest.preset.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
import nxPreset from '@nrwl/jest/preset/index.js';

export default { ...nxPreset };
export default {
testEnvironment: 'node',
testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
transform: {
'^.+\\.ts$': 'ts-jest',
},
moduleFileExtensions: ['ts', 'js', 'json'],
collectCoverageFrom: [
'src/**/*.ts',
'!src/**/*.d.ts',
'!src/index.ts',
],
coverageDirectory: 'coverage',
coverageReporters: ['text', 'lcov', 'html'],
};
32 changes: 32 additions & 0 deletions jest.setup.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/**
* Global Jest Setup File
*
* Suppresses expected SDK validation errors to reduce console noise during tests.
* These errors are intentional - tests verify that the SDK handles invalid inputs gracefully.
*/

// Store the original console.error for genuine errors
const originalConsoleError = console.error;

// List of expected SDK validation errors to suppress
const expectedErrors = [
'Invalid key:', // From query.search() validation
'Invalid value (expected string or number):', // From query.equalTo() validation
'Argument should be a String or an Array.', // From entry/entries.includeReference() validation
'Invalid fieldUid:', // From asset query validation
];

// Override console.error globally to filter expected validation errors
console.error = (...args: any[]) => {
const message = args[0]?.toString() || '';

// Check if this is an expected SDK validation error
const isExpectedError = expectedErrors.some(pattern => message.includes(pattern));

// If not expected, show it (for genuine errors)
if (!isExpectedError) {
originalConsoleError.apply(console, args);
}
// Otherwise, silently suppress it
};

Loading