mirror of
https://github.com/hanzoai/tractor-beam.git
synced 2026-10-30 18:19:16 +00:00
104 lines
2.6 KiB
Plaintext
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
|