Files
2017-05-22 19:12:02 -05:00

104 lines
2.6 KiB
Plaintext

use 'sake-bundle'
use 'sake-outdated'
use 'sake-publish'
use 'sake-version'
option '-b', '--browser [browserName]', 'Browser to test with'
option '-s', '--external-selenium', 'Use external selenium'
option '-v', '--verbose', 'Enable verbose logging for tests'
task 'build', 'Build module and bundle tractor_beam.js', ->
b = new Bundle
entry: 'src/index.coffee'
commonjs: true
compilers:
coffee:
version: 1
Promise.all [
# ES module (for bundlers)
b.write format: 'es'
# Node.js
b.write format: 'cjs'
# Browser (single file)
b.write
format: 'web'
sourceMap: false
]
task 'build:min', 'Build minified module', ['build'], ->
exec 'uglifyjs tractorbeam.js -o tractorbeam.min.js'
task 'watch', 'watch for changes and recompile', ->
exec 'bebop'
task 'static-server', 'Run static server for tests', ->
connect = require 'connect'
server = connect()
server.use (require 'serve-static') './test'
port = process.env.PORT ? 3333
console.log "Static server started at http://localhost:#{port}"
server.listen port
task 'selenium-install', 'Install selenium standalone', ->
exec 'node_modules/.bin/selenium-standalone install'
task 'test', 'Run tests', (options) ->
browserName = options.browser ? 'phantomjs'
externalSelenium = options.externalSelenium ? false
verbose = options.verbose ? false
invoke 'static-server'
runTest = (cb) ->
exec "NODE_ENV=test
BROWSER=#{browserName}
VERBOSE=#{verbose}
node_modules/.bin/mocha
--compilers coffee:coffee-script/register
--reporter spec
--colors
--timeout 90000
test/test.coffee", cb
if externalSelenium
runTest (err) ->
process.exit 1 if err?
process.exit 0
selenium = require 'selenium-standalone'
selenium.start (err, child) ->
throw err if err?
runTest (err) ->
child.kill()
process.exit 1 if err?
process.exit 0
task 'test:ci', 'Run tests on CI server', ->
invoke 'static-server'
browsers = require './test/ci-config'
tests = for {browserName, platform, version, deviceName, deviceOrientation} in browsers
"NODE_ENV=test
BROWSER=\"#{browserName}\"
PLATFORM=\"#{platform}\"
VERSION=\"#{version}\"
DEVICE_NAME=\"#{deviceName ? ''}\"
DEVICE_ORIENTATION=\"#{deviceOrientation ? ''}\"
VERBOSE=true
node_modules/.bin/mocha
--compilers coffee:coffee-script/register
--reporter spec
--colors
--timeout 60000
test/test.coffee"
exec tests, (err) ->
process.exit 1 if err?
process.exit 0