mirror of
https://github.com/mnaoumov/obsidian-advanced-debug-mode.git
synced 2026-07-22 05:44:00 +00:00
test: add
This commit is contained in:
parent
3c25891993
commit
b7c2fd6faa
12 changed files with 179 additions and 1 deletions
11
scripts/test-coverage.ts
Normal file
11
scripts/test-coverage.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
|
||||
import { testCoverage } from 'obsidian-dev-utils/script-utils/test-runners/vitest';
|
||||
|
||||
const FULL_COVERAGE_PERCENT = 100;
|
||||
|
||||
await wrapCliTask(() =>
|
||||
testCoverage({
|
||||
minCoverageInPercents: FULL_COVERAGE_PERCENT,
|
||||
projects: ['unit-tests']
|
||||
})
|
||||
);
|
||||
8
scripts/test-integration-android.ts
Normal file
8
scripts/test-integration-android.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
|
||||
import { test } from 'obsidian-dev-utils/script-utils/test-runners/vitest';
|
||||
|
||||
await wrapCliTask(() =>
|
||||
test({
|
||||
projects: ['integration-tests:android']
|
||||
})
|
||||
);
|
||||
8
scripts/test-integration-desktop.ts
Normal file
8
scripts/test-integration-desktop.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
|
||||
import { test } from 'obsidian-dev-utils/script-utils/test-runners/vitest';
|
||||
|
||||
await wrapCliTask(() =>
|
||||
test({
|
||||
projects: ['integration-tests:desktop']
|
||||
})
|
||||
);
|
||||
8
scripts/test-integration-no-app.ts
Normal file
8
scripts/test-integration-no-app.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
|
||||
import { test } from 'obsidian-dev-utils/script-utils/test-runners/vitest';
|
||||
|
||||
await wrapCliTask(() =>
|
||||
test({
|
||||
projects: ['integration-tests:no-app']
|
||||
})
|
||||
);
|
||||
14
scripts/test-integration.ts
Normal file
14
scripts/test-integration.ts
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
|
||||
import { test } from 'obsidian-dev-utils/script-utils/test-runners/vitest';
|
||||
|
||||
await wrapCliTask(async () => {
|
||||
await test({
|
||||
projects: ['integration-tests:no-app']
|
||||
});
|
||||
await test({
|
||||
projects: ['integration-tests:android']
|
||||
});
|
||||
await test({
|
||||
projects: ['integration-tests:desktop']
|
||||
});
|
||||
});
|
||||
8
scripts/test-watch.ts
Normal file
8
scripts/test-watch.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
|
||||
import { testWatch } from 'obsidian-dev-utils/script-utils/test-runners/vitest';
|
||||
|
||||
await wrapCliTask(() =>
|
||||
testWatch({
|
||||
projects: ['unit-tests']
|
||||
})
|
||||
);
|
||||
8
scripts/test.ts
Normal file
8
scripts/test.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
|
||||
import { test } from 'obsidian-dev-utils/script-utils/test-runners/vitest';
|
||||
|
||||
await wrapCliTask(() =>
|
||||
test({
|
||||
projects: ['unit-tests']
|
||||
})
|
||||
);
|
||||
83
scripts/vitest-config.ts
Normal file
83
scripts/vitest-config.ts
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
import { defineConfig } from 'vitest/config';
|
||||
|
||||
const SHARED_EXCLUDE = ['node_modules', 'dist'];
|
||||
const BIG_TIMEOUT_IN_MILLISECONDS = 30_000;
|
||||
const ANDROID_TIMEOUT_IN_MILLISECONDS = 60_000;
|
||||
const HOOK_TIMEOUT_MULTIPLIER = 4;
|
||||
|
||||
export const config = defineConfig({
|
||||
test: {
|
||||
coverage: {
|
||||
exclude: [
|
||||
'src/**/*.test.ts'
|
||||
],
|
||||
include: ['src/**/*.ts'],
|
||||
provider: 'v8',
|
||||
reporter: ['text', 'lcov', 'html'],
|
||||
reportsDirectory: './coverage'
|
||||
},
|
||||
exclude: ['node_modules', 'dist'],
|
||||
globals: false,
|
||||
include: ['src/**/*.test.ts'],
|
||||
passWithNoTests: true,
|
||||
projects: [
|
||||
{
|
||||
resolve: {
|
||||
alias: {
|
||||
obsidian: 'obsidian-test-mocks/obsidian'
|
||||
}
|
||||
},
|
||||
ssr: {
|
||||
noExternal: ['obsidian-dev-utils', 'obsidian-typings']
|
||||
},
|
||||
test: {
|
||||
environment: 'jsdom',
|
||||
exclude: [...SHARED_EXCLUDE, 'src/**/*.integration.test.ts'],
|
||||
execArgv: ['--no-webstorage'],
|
||||
include: ['src/**/*.test.ts'],
|
||||
name: 'unit-tests',
|
||||
setupFiles: ['obsidian-test-mocks/vitest-setup']
|
||||
}
|
||||
},
|
||||
{
|
||||
test: {
|
||||
environment: 'node',
|
||||
fileParallelism: false,
|
||||
hookTimeout: BIG_TIMEOUT_IN_MILLISECONDS * HOOK_TIMEOUT_MULTIPLIER,
|
||||
include: ['src/**/*.no-app.integration.test.ts'],
|
||||
name: 'integration-tests:no-app',
|
||||
testTimeout: BIG_TIMEOUT_IN_MILLISECONDS
|
||||
}
|
||||
},
|
||||
{
|
||||
test: {
|
||||
environment: 'node',
|
||||
fileParallelism: false,
|
||||
globalSetup: ['obsidian-integration-testing/vitest-global-setup'],
|
||||
hookTimeout: BIG_TIMEOUT_IN_MILLISECONDS * HOOK_TIMEOUT_MULTIPLIER,
|
||||
include: ['src/**/*.desktop.integration.test.ts'],
|
||||
name: 'integration-tests:desktop',
|
||||
testTimeout: BIG_TIMEOUT_IN_MILLISECONDS
|
||||
}
|
||||
},
|
||||
{
|
||||
test: {
|
||||
environment: 'node',
|
||||
environmentOptions: {
|
||||
obsidianTransport: {
|
||||
appiumUrl: 'http://localhost:4723',
|
||||
avdName: 'obsidian_test',
|
||||
type: 'obsidian-android-appium'
|
||||
}
|
||||
},
|
||||
fileParallelism: false,
|
||||
globalSetup: ['obsidian-integration-testing/vitest-global-setup'],
|
||||
hookTimeout: ANDROID_TIMEOUT_IN_MILLISECONDS * HOOK_TIMEOUT_MULTIPLIER,
|
||||
include: ['src/**/*.android.integration.test.ts'],
|
||||
name: 'integration-tests:android',
|
||||
testTimeout: ANDROID_TIMEOUT_IN_MILLISECONDS
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
13
src/plugin.android.integration.test.ts
Normal file
13
src/plugin.android.integration.test.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import { getTempVault } from 'obsidian-integration-testing/vitest-global-setup';
|
||||
import {
|
||||
describe,
|
||||
expect,
|
||||
it
|
||||
} from 'vitest';
|
||||
|
||||
describe('Smoke test', () => {
|
||||
it('should load plugin on Android', () => {
|
||||
const vault = getTempVault();
|
||||
expect(vault.path).toBeTruthy();
|
||||
});
|
||||
});
|
||||
13
src/plugin.desktop.integration.test.ts
Normal file
13
src/plugin.desktop.integration.test.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import { getTempVault } from 'obsidian-integration-testing/vitest-global-setup';
|
||||
import {
|
||||
describe,
|
||||
expect,
|
||||
it
|
||||
} from 'vitest';
|
||||
|
||||
describe('Smoke test', () => {
|
||||
it('should load plugin on Desktop', () => {
|
||||
const vault = getTempVault();
|
||||
expect(vault.path).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
|
@ -32,6 +32,7 @@
|
|||
"./commitlint.config.ts",
|
||||
"./eslint.config.mts",
|
||||
"./src/**/*.ts",
|
||||
"./scripts/**/*.ts"
|
||||
"./scripts/**/*.ts",
|
||||
"./vitest.config.ts"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
3
vitest.config.ts
Normal file
3
vitest.config.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import { config } from './scripts/vitest-config.ts';
|
||||
|
||||
export default config;
|
||||
Loading…
Reference in a new issue