テストのために関数exportしないといけないの、チョット気持ち悪いので、解決策を探ってみる。
jhnns/rewire: Easy monkey-patching for node.js unit testsが一般的らしい。
$ npm install -D rewire @types/rewire
テストコードのimportを修正
import rewire from 'rewire';
const __local__ = rewire('./mdmml.ts');
const atoi = __local__.__get__('atoi')
テスト実行
$ npm test
> mdmml_js@1.0.0 test
> jest
FAIL src/mdmml.test.ts
● Test suite failed to run
/home/umemak/workspace/mdmml_js/src/mdmml.ts:8
Tracks: Track[] = [];
SyntaxError: Unexpected identifier
at Object.load (node_modules/rewire/lib/moduleEnv.js:57:18)
at internalRewire (node_modules/rewire/lib/rewire.js:49:15)
at rewire (node_modules/rewire/lib/index.js:11:12)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 1.01 s
Ran all test suites.
関係ないところでエラーになるようになってしまった。。
面倒なのでとりあえずexportする方向で。