kintuba for karma.
karma-kintuba は karma で kintuba を利用する為のプラグインです。
kintuba については以下リポジトリを参照して下さい。
https://github.com/t-kojima/kintuba
npm install --save-dev karma-kintuba
or
yarn add --dev karma-kintuba
karma.conf.js
ファイルのframeworks
とfiles
に以下追記します。
frameworks: ['kintuba'],
files: [
{
pattern: '.kintuba/**/*.json',
watched: false,
included: false,
served: true,
nocache: false,
},
],
実際使用する際のファイルは以下のようになります。
module.exports = config => {
config.set({
basePath: '',
frameworks: ['mocha', 'chai', 'sinon', 'kintuba'],
files: [
'src/**/*.js',
'test/**/*.js',
{
pattern: '.kintuba/**/*.json',
watched: false,
included: false,
served: true,
nocache: false
}
],
exclude: [],
preprocessors: {},
reporters: ['mocha'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: true,
concurrency: Infinity
})
}
以上の設定で、karma でテストを実行する際にkintone
オブジェクトのスタブを利用することができます。
使用例)
describe('example', () => {
it('can get ui version', () => {
chai.assert.equal(kintone.getUiVersion(), 2)
})
})
デフォルトの状態ではデータが存在しない為、event.records
などにアクセスしても空配列が返ります。テストデータを返すようにするには、テストデータを用意し以下の手順で都度読み込んでください。また、テストデータの作成はここを参考に行ってください。
schema.load()
を実行すると、.kintuba/schema
ディレクトリにある以下のファイルを読み込みます。
- app.json
- fields.json
- form.json
- views.json
尚、非同期に読み込まれる為、以下の例では async/await で読み込んでいます。
describe('example', () => {
before(async () => {
await schema.load()
})
})
既定のディレクトリ(.kintuba/schema
)以外にあるファイルを読みたい場合は引数で指定することができます。
await schema.load('other/dir')
// other/dir/app.json等がロードされる
fixture.load()
を実行すると、.kintuba/fixture
ディレクトリにある以下のファイルを読み込みます。
- login.json
- records.json
schema
と同様に非同期に実行される点注意して下さい。
また、既定のディレクトリ以外を読む場合は引数で指定します。
await fixture.load('other/dir')
// other/dir/login.json等がロードされる
MIT License.