mirror of
https://github.com/gavvvr/obsidian-timecodes-plugin.git
synced 2026-07-22 05:38:08 +00:00
parent
8c674b5dcf
commit
da38f73330
3 changed files with 57 additions and 1 deletions
|
|
@ -3,10 +3,14 @@
|
|||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"pretest": "pnpm --dir .. run build",
|
||||
"pretest": "pnpm --dir .. run build:coverage",
|
||||
"test": "wdio run wdio.conf.ts"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/istanbul-lib-coverage": "2.0.6",
|
||||
"@types/istanbul-lib-report": "3.0.3",
|
||||
"@types/istanbul-lib-source-maps": "4.0.4",
|
||||
"@types/istanbul-reports": "3.0.4",
|
||||
"@wdio/cli": "9.20.0",
|
||||
"@wdio/globals": "9.17.0",
|
||||
"@wdio/local-runner": "9.20.0",
|
||||
|
|
@ -14,6 +18,10 @@
|
|||
"@wdio/spec-reporter": "9.20.0",
|
||||
"electron": "37.6.0",
|
||||
"expect-webdriverio": "5.4.3",
|
||||
"istanbul-lib-coverage": "3.2.2",
|
||||
"istanbul-lib-report": "3.0.1",
|
||||
"istanbul-lib-source-maps": "5.0.6",
|
||||
"istanbul-reports": "3.2.0",
|
||||
"obsidian": "1.10.0",
|
||||
"wdio-electron-service": "8.1.0",
|
||||
"webdriverio": "9.20.0"
|
||||
|
|
|
|||
44
e2e/utils/coverage.ts
Normal file
44
e2e/utils/coverage.ts
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
import type { CoverageMapData } from 'istanbul-lib-coverage'
|
||||
|
||||
import * as fs from 'node:fs'
|
||||
import * as path from 'node:path'
|
||||
|
||||
import { createCoverageMap } from 'istanbul-lib-coverage'
|
||||
import { createContext } from 'istanbul-lib-report'
|
||||
import { createSourceMapStore } from 'istanbul-lib-source-maps'
|
||||
import * as reports from 'istanbul-reports'
|
||||
|
||||
export async function exportCoverageToLcov() {
|
||||
const coverageMap = createCoverageMap(await collectCoverageData())
|
||||
const remappedCoverageMap = await createSourceMapStore().transformCoverage(coverageMap)
|
||||
|
||||
const context = createContext({
|
||||
coverageMap: remappedCoverageMap,
|
||||
dir: 'out/coverage',
|
||||
sourceFinder: (filePath: string) => {
|
||||
return fs.readFileSync(restorePathRelativeToMainPluginProject(filePath), 'utf-8')
|
||||
},
|
||||
})
|
||||
reports.create('lcov').execute(context)
|
||||
}
|
||||
|
||||
const cwd = process.cwd()
|
||||
|
||||
function restorePathRelativeToMainPluginProject(filePath: string) {
|
||||
const relativePart = path.relative(cwd, filePath)
|
||||
return path.join(path.resolve(cwd, '..'), relativePart)
|
||||
}
|
||||
|
||||
async function collectCoverageData() {
|
||||
const coverageData = await browser.execute(() => {
|
||||
return window.__coverage__
|
||||
})
|
||||
if (!coverageData) throw new Error('No coverage data found!')
|
||||
return coverageData
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
__coverage__?: CoverageMapData
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
/// <reference types="wdio-electron-service" />
|
||||
import ObsidianApp from './specs/pageobjects/obsidian-app.page'
|
||||
import { exportCoverageToLcov } from './utils/coverage'
|
||||
|
||||
const debug = process.env.DEBUG
|
||||
const ONE_DAY = 24 * 60 * 60 * 1000
|
||||
|
|
@ -40,4 +41,7 @@ export const config: WebdriverIO.Config = {
|
|||
await ObsidianApp.createAndOpenFreshVault()
|
||||
await ObsidianApp.activateTimecodesPlugin()
|
||||
},
|
||||
afterSuite: async () => {
|
||||
await exportCoverageToLcov()
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue