mirror of
				https://github.com/KevinMidboe/vue-chartjs.git
				synced 2025-10-29 18:00:20 +00:00 
			
		
		
		
	🎉 Initial commit
This commit is contained in:
		
							
								
								
									
										9
									
								
								test/unit/.eslintrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								test/unit/.eslintrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
{
 | 
			
		||||
  "env": {
 | 
			
		||||
    "mocha": true
 | 
			
		||||
  },
 | 
			
		||||
  "globals": {
 | 
			
		||||
    "expect": true,
 | 
			
		||||
    "sinon": true
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								test/unit/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								test/unit/index.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
// Polyfill fn.bind() for PhantomJS
 | 
			
		||||
/* eslint-disable no-extend-native */
 | 
			
		||||
Function.prototype.bind = require('function-bind')
 | 
			
		||||
 | 
			
		||||
// require all test files (files that ends with .spec.js)
 | 
			
		||||
var testsContext = require.context('./specs', true, /\.spec$/)
 | 
			
		||||
testsContext.keys().forEach(testsContext)
 | 
			
		||||
 | 
			
		||||
// require all src files except main.js for coverage.
 | 
			
		||||
// you can also change this to match only the subset of files that
 | 
			
		||||
// you want coverage for.
 | 
			
		||||
var srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/)
 | 
			
		||||
srcContext.keys().forEach(srcContext)
 | 
			
		||||
							
								
								
									
										75
									
								
								test/unit/karma.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								test/unit/karma.conf.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
// This is a karma config file. For more details see
 | 
			
		||||
//   http://karma-runner.github.io/0.13/config/configuration-file.html
 | 
			
		||||
// we are also using it with karma-webpack
 | 
			
		||||
//   https://github.com/webpack/karma-webpack
 | 
			
		||||
 | 
			
		||||
var path = require('path')
 | 
			
		||||
var merge = require('webpack-merge')
 | 
			
		||||
var baseConfig = require('../../build/webpack.base.conf')
 | 
			
		||||
var utils = require('../../build/utils')
 | 
			
		||||
var webpack = require('webpack')
 | 
			
		||||
var projectRoot = path.resolve(__dirname, '../../')
 | 
			
		||||
 | 
			
		||||
var webpackConfig = merge(baseConfig, {
 | 
			
		||||
  // use inline sourcemap for karma-sourcemap-loader
 | 
			
		||||
  module: {
 | 
			
		||||
    loaders: utils.styleLoaders()
 | 
			
		||||
  },
 | 
			
		||||
  devtool: '#inline-source-map',
 | 
			
		||||
  vue: {
 | 
			
		||||
    loaders: {
 | 
			
		||||
      js: 'isparta'
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  plugins: [
 | 
			
		||||
    new webpack.DefinePlugin({
 | 
			
		||||
      'process.env': require('../../config/test.env')
 | 
			
		||||
    })
 | 
			
		||||
  ]
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
// no need for app entry during tests
 | 
			
		||||
delete webpackConfig.entry
 | 
			
		||||
 | 
			
		||||
// make sure isparta loader is applied before eslint
 | 
			
		||||
webpackConfig.module.preLoaders = webpackConfig.module.preLoaders || []
 | 
			
		||||
webpackConfig.module.preLoaders.unshift({
 | 
			
		||||
  test: /\.js$/,
 | 
			
		||||
  loader: 'isparta',
 | 
			
		||||
  include: path.resolve(projectRoot, 'src')
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
// only apply babel for test files when using isparta
 | 
			
		||||
webpackConfig.module.loaders.some(function (loader, i) {
 | 
			
		||||
  if (loader.loader === 'babel') {
 | 
			
		||||
    loader.include = path.resolve(projectRoot, 'test/unit')
 | 
			
		||||
    return true
 | 
			
		||||
  }
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
module.exports = function (config) {
 | 
			
		||||
  config.set({
 | 
			
		||||
    // to run in additional browsers:
 | 
			
		||||
    // 1. install corresponding karma launcher
 | 
			
		||||
    //    http://karma-runner.github.io/0.13/config/browsers.html
 | 
			
		||||
    // 2. add it to the `browsers` array below.
 | 
			
		||||
    browsers: ['PhantomJS'],
 | 
			
		||||
    frameworks: ['mocha', 'sinon-chai'],
 | 
			
		||||
    reporters: ['spec', 'coverage'],
 | 
			
		||||
    files: ['./index.js'],
 | 
			
		||||
    preprocessors: {
 | 
			
		||||
      './index.js': ['webpack', 'sourcemap']
 | 
			
		||||
    },
 | 
			
		||||
    webpack: webpackConfig,
 | 
			
		||||
    webpackMiddleware: {
 | 
			
		||||
      noInfo: true
 | 
			
		||||
    },
 | 
			
		||||
    coverageReporter: {
 | 
			
		||||
      dir: './coverage',
 | 
			
		||||
      reporters: [
 | 
			
		||||
        { type: 'lcov', subdir: '.' },
 | 
			
		||||
        { type: 'text-summary' }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								test/unit/specs/Hello.spec.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								test/unit/specs/Hello.spec.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
import Vue from 'vue'
 | 
			
		||||
import Hello from 'src/components/Hello'
 | 
			
		||||
 | 
			
		||||
describe('Hello.vue', () => {
 | 
			
		||||
  it('should render correct contents', () => {
 | 
			
		||||
    const vm = new Vue({
 | 
			
		||||
      template: '<div><hello></hello></div>',
 | 
			
		||||
      components: { Hello }
 | 
			
		||||
    }).$mount()
 | 
			
		||||
    expect(vm.$el.querySelector('.hello h1').textContent).to.contain('Hello World!')
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
		Reference in New Issue
	
	Block a user