Files
form.js/Cakefile
T
2016-07-14 23:27:26 -07:00

85 lines
2.5 KiB
CoffeeScript

require 'shortcake'
use 'cake-version'
use 'cake-publish'
option '-b', '--browser [browserName]', 'browser to test with'
option '-g', '--grep [filter]', 'test filter'
option '-v', '--version [<newversion> | major | minor | patch | build]', 'new version'
task 'clean', 'clean project', (options) ->
exec 'rm -rf lib'
exec 'rm -rf .test'
task 'build', 'build project', (options) ->
exec 'node_modules/.bin/coffee -bcm -o lib/ src/'
exec 'node_modules/.bin/coffee -bcm -o .test/ test/'
bebop = require './bebop'
bebop.compile()
task 'watch', 'watch for changes and recompile project', ->
exec 'node_modules/.bin/bebop'
task 'publish', 'publish project', (options) ->
newVersion = options.version ? 'patch'
exec """
git push
npm version #{newVersion}
npm publish
""".split '\n'
task 'static-server', 'Run static server for tests', ->
connect = require 'connect'
server = connect()
server.use (require 'serve-static') './test'
server.listen process.env.PORT ? 3333
task 'selenium-install', 'Install selenium standalone', ->
exec 'node_modules/.bin/selenium-standalone install'
task 'test', 'Run tests', (options) ->
browserName = options.browser ? 'phantomjs'
invoke 'static-server'
selenium = require 'selenium-standalone'
selenium.start (err, child) ->
throw err if err?
exec "NODE_ENV=test
BROWSER=#{browserName}
node_modules/.bin/mocha
--compilers coffee:coffee-script/register
--reporter spec
--colors
--timeout 60000
test/test.coffee", (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
console.log("Attempting With", browserName, platform, version, deviceName, deviceOrientation)
"NODE_ENV=test
BROWSER=\"#{browserName.replace(/ /g, '_')}\"
PLATFORM=\"#{platform.replace(/ /g, '_')}\"
VERSION=\"#{version.replace(/ /g, '_')}\"
DEVICE_NAME=\"#{if deviceName then deviceName.replace(/ /g, '_') else ''}\"
DEVICE_ORIENTATION=\"#{if deviceName then deviceOrientation.replace(/ /g, '_') else ''}\"
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