Loading files
59e2a9d01This file is pinned to the selected release. Download the original to open it in your design tool.
Files from this revision, including CAD and LFS contents. Git history is not included.
Or in GitHub Desktop, choose File → Clone repository → URL and paste this address.
Public repositories can be cloned without signing in. For pushing, use your ThingAtlas username and a Git access token as the password.
git lfs install git clone https://thingatlas.com/git/-unclaimed/openharness-1322671404.git
Includes Git history, branches, and Git LFS files. Clones the repository’s default branch, regardless of the version shown here.
59e2a9d01This file is pinned to the selected release. Download the original to open it in your design tool.
// Run the Models and API tests with --coverage, then check all six feature modules.
import { readFileSync } from 'node:fs'
const expected = new Set([
'local_model.dart',
'model_manager_controller.dart',
'model_mark.dart',
'models_panel.dart',
'api_connections_controller.dart',
'api_connections_panel.dart',
])
let covered = 0, total = 0
for (const record of readFileSync(process.argv[2] ?? 'coverage/lcov.info', 'utf8').split('end_of_record')) {
const path = record.match(/SF:(.*)/)?.[1]
if (!path?.includes('/models/')) continue
const name = path.split('/').at(-1)
if (!expected.delete(name)) continue
const found = Number(record.match(/LF:(\d+)/)?.[1])
const hit = Number(record.match(/LH:(\d+)/)?.[1])
if (!found || hit !== found) throw new Error(`${name}: ${hit}/${found} lines; expected 100%`)
total += found
covered += hit
}
if (expected.size) throw new Error(`Missing Models coverage: ${[...expected].join(', ')}`)
console.log(`Models desktop: ${covered}/${total} lines (100%) across six feature modules.`)