feat: add Jest configuration and basic framework tests

This commit is contained in:
anonpenguin 2025-06-19 11:26:45 +03:00
parent f58fa0caf7
commit 071723f673
4 changed files with 40 additions and 43 deletions

18
jest.config.cjs Normal file
View File

@ -0,0 +1,18 @@
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
roots: ['<rootDir>/tests'],
testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
transform: {
'^.+\\.ts$': [
'ts-jest',
{
isolatedModules: true
},
],
},
collectCoverageFrom: ['src/**/*.ts', '!src/**/*.d.ts', '!src/**/index.ts', '!src/examples/**'],
coverageDirectory: 'coverage',
coverageReporters: ['text', 'lcov', 'html'],
testTimeout: 30000,
};

View File

@ -1,34 +0,0 @@
export default {
preset: 'ts-jest/presets/default-esm',
extensionsToTreatAsEsm: ['.ts'],
testEnvironment: 'node',
roots: ['<rootDir>/src', '<rootDir>/tests'],
testMatch: [
'**/__tests__/**/*.ts',
'**/?(*.)+(spec|test).ts'
],
transform: {
'^.+\\.ts$': ['ts-jest', {
useESM: true
}],
},
collectCoverageFrom: [
'src/**/*.ts',
'!src/**/*.d.ts',
'!src/**/index.ts',
'!src/examples/**',
],
coverageDirectory: 'coverage',
coverageReporters: [
'text',
'lcov',
'html'
],
setupFilesAfterEnv: ['<rootDir>/tests/setup.ts'],
testTimeout: 30000,
moduleNameMapping: {
'^@/(.*)$': '<rootDir>/src/$1',
'^@orbitdb/core$': '<rootDir>/tests/mocks/orbitdb.ts',
'^@helia/helia$': '<rootDir>/tests/mocks/ipfs.ts',
},
};

View File

@ -87,14 +87,5 @@
"tsc-esm-fix": "^3.1.2",
"typescript": "^5.8.2",
"typescript-eslint": "^8.29.0"
},
"compilerOptions": {
"typeRoots": [
"./node_modules/@types",
"./node_modules/@constl/orbit-db-types"
],
"types": [
"@constl/orbit-db-types"
]
}
}

22
tests/basic.test.ts Normal file
View File

@ -0,0 +1,22 @@
import { describe, it, expect } from '@jest/globals';
describe('Basic Framework Test', () => {
it('should be able to run tests', () => {
expect(1 + 1).toBe(2);
});
it('should validate test infrastructure', () => {
const mockFunction = jest.fn();
mockFunction('test');
expect(mockFunction).toHaveBeenCalledWith('test');
});
it('should handle async operations', async () => {
const asyncFunction = async () => {
return Promise.resolve('success');
};
const result = await asyncFunction();
expect(result).toBe('success');
});
});