mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-18 17:05:48 +00:00
When a user adds a subtask by editing the markdown file directly, the MD→SP sync creates the task which triggers SP hooks, which trigger SP→MD sync, which writes the file, which the file watcher detects, creating a rapid sync oscillation loop that crashes the app. Three-layer fix: 1. Stop file watcher for the entire MD→SP sync duration and cancel pending SP→MD debounce timers 2. Add a cooldown after MD→SP sync (set before and after in finally block) to suppress SP hooks that fire as side-effects 3. Simplify lazySetInterval with async/await and a stopped flag to prevent zombie rescheduling when cancelled during async callbacks Also fixes a file watcher race condition where polling could start before initial mtime was resolved. Fixes #6021
30 lines
879 B
JavaScript
30 lines
879 B
JavaScript
/** @type {import('jest').Config} */
|
|
module.exports = {
|
|
preset: 'ts-jest',
|
|
testEnvironment: 'jsdom',
|
|
transform: {
|
|
'^.+\\.tsx?$': [
|
|
'ts-jest',
|
|
{
|
|
tsconfig: {
|
|
module: 'commonjs',
|
|
target: 'es2020',
|
|
esModuleInterop: true,
|
|
allowSyntheticDefaultImports: true,
|
|
jsx: 'preserve',
|
|
jsxImportSource: 'solid-js',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
testMatch: ['**/*.spec.ts', '**/*.test.ts'],
|
|
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
|
|
testPathIgnorePatterns: ['/node_modules/', '/dist/', '/src/background/old/'],
|
|
roots: ['<rootDir>/src'],
|
|
setupFilesAfterEnv: ['<rootDir>/src/setupTests.ts'],
|
|
moduleNameMapper: {
|
|
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
'^@super-productivity/plugin-api$':
|
|
'<rootDir>/node_modules/@super-productivity/plugin-api/src/index.ts',
|
|
},
|
|
};
|