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:
		
							
								
								
									
										26
									
								
								test/e2e/custom-assertions/elementCount.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								test/e2e/custom-assertions/elementCount.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| // A custom Nightwatch assertion. | ||||
| // the name of the method is the filename. | ||||
| // can be used in tests like this: | ||||
| // | ||||
| //   browser.assert.elementCount(selector, count) | ||||
| // | ||||
| // for how to write custom assertions see | ||||
| // http://nightwatchjs.org/guide#writing-custom-assertions | ||||
| exports.assertion = function (selector, count) { | ||||
|   this.message = 'Testing if element <' + selector + '> has count: ' + count | ||||
|   this.expected = count | ||||
|   this.pass = function (val) { | ||||
|     return val === this.expected | ||||
|   } | ||||
|   this.value = function (res) { | ||||
|     return res.value | ||||
|   } | ||||
|   this.command = function (cb) { | ||||
|     var self = this | ||||
|     return this.api.execute(function (selector) { | ||||
|       return document.querySelectorAll(selector).length | ||||
|     }, [selector], function (res) { | ||||
|       cb.call(self, res) | ||||
|     }) | ||||
|   } | ||||
| } | ||||
							
								
								
									
										40
									
								
								test/e2e/nightwatch.conf.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								test/e2e/nightwatch.conf.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| // http://nightwatchjs.org/guide#settings-file | ||||
| module.exports = { | ||||
|   "src_folders": ["test/e2e/specs"], | ||||
|   "output_folder": "test/e2e/reports", | ||||
|   "custom_assertions_path": ["test/e2e/custom-assertions"], | ||||
|  | ||||
|   "selenium": { | ||||
|     "start_process": true, | ||||
|     "server_path": "node_modules/selenium-server/lib/runner/selenium-server-standalone-2.53.0.jar", | ||||
|     "host": "127.0.0.1", | ||||
|     "port": 4444, | ||||
|     "cli_args": { | ||||
|       "webdriver.chrome.driver": require('chromedriver').path | ||||
|     } | ||||
|   }, | ||||
|  | ||||
|   "test_settings": { | ||||
|     "default": { | ||||
|       "selenium_port": 4444, | ||||
|       "selenium_host": "localhost", | ||||
|       "silent": true | ||||
|     }, | ||||
|  | ||||
|     "chrome": { | ||||
|       "desiredCapabilities": { | ||||
|         "browserName": "chrome", | ||||
|         "javascriptEnabled": true, | ||||
|         "acceptSslCerts": true | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     "firefox": { | ||||
|       "desiredCapabilities": { | ||||
|         "browserName": "firefox", | ||||
|         "javascriptEnabled": true, | ||||
|         "acceptSslCerts": true | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										31
									
								
								test/e2e/runner.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								test/e2e/runner.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| // 1. start the dev server using production config | ||||
| process.env.NODE_ENV = 'testing' | ||||
| var server = require('../../build/dev-server.js') | ||||
|  | ||||
| // 2. run the nightwatch test suite against it | ||||
| // to run in additional browsers: | ||||
| //    1. add an entry in test/e2e/nightwatch.conf.json under "test_settings" | ||||
| //    2. add it to the --env flag below | ||||
| // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox` | ||||
| // For more information on Nightwatch's config file, see | ||||
| // http://nightwatchjs.org/guide#settings-file | ||||
| var opts = process.argv.slice(2) | ||||
| if (opts.indexOf('--config') === -1) { | ||||
|   opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js']) | ||||
| } | ||||
| if (opts.indexOf('--env') === -1) { | ||||
|   opts = opts.concat(['--env', 'chrome']) | ||||
| } | ||||
|  | ||||
| var spawn = require('cross-spawn') | ||||
| var runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' }) | ||||
|  | ||||
| runner.on('exit', function (code) { | ||||
|   server.close() | ||||
|   process.exit(code) | ||||
| }) | ||||
|  | ||||
| runner.on('error', function (err) { | ||||
|   server.close() | ||||
|   throw err | ||||
| }) | ||||
							
								
								
									
										14
									
								
								test/e2e/specs/test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								test/e2e/specs/test.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| // For authoring Nightwatch tests, see | ||||
| // http://nightwatchjs.org/guide#usage | ||||
|  | ||||
| module.exports = { | ||||
|   'default e2e tests': function (browser) { | ||||
|     browser | ||||
|     .url('http://localhost:8080') | ||||
|       .waitForElementVisible('#app', 5000) | ||||
|       .assert.elementPresent('.logo') | ||||
|       .assert.containsText('h1', 'Hello World!') | ||||
|       .assert.elementCount('p', 3) | ||||
|       .end() | ||||
|   } | ||||
| } | ||||
							
								
								
									
										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