1.0.0 • Published 6 years ago

karma-kintuba v1.0.0

Weekly downloads
8
License
MIT
Repository
github
Last release
6 years ago

karma-kintuba

npm version License: MIT

kintuba for karma.

Description

karma-kintuba は karma で kintuba を利用する為のプラグインです。

kintuba については以下リポジトリを参照して下さい。

https://github.com/t-kojima/kintuba

Install

npm install --save-dev karma-kintuba

or

yarn add --dev karma-kintuba

Usage

karma.conf.js

karma.conf.jsファイルのframeworksfilesに以下追記します。

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

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

fixture.load()を実行すると、.kintuba/fixtureディレクトリにある以下のファイルを読み込みます。

  • login.json
  • records.json

schemaと同様に非同期に実行される点注意して下さい。

また、既定のディレクトリ以外を読む場合は引数で指定します。

await fixture.load('other/dir')
// other/dir/login.json等がロードされる

Licence

MIT License.