phadej/jsverify

View on GitHub
Makefile

Summary

Maintainability
Test Coverage
.PHONY : all test test-default test-travis jshint eslint jscs tslint karma mocha mocha-ts istanbul npm-freeze david dist literate README.md

BINDIR=node_modules/.bin

JSHINT=$(BINDIR)/jshint
ESLINT=$(BINDIR)/eslint
JSCS=$(BINDIR)/jscs
TSLINT=$(BINDIR)/tslint
MOCHA=$(BINDIR)/mocha
IMOCHA=$(BINDIR)/_mocha
ISTANBUL=$(BINDIR)/istanbul
KARMA=$(BINDIR)/karma
BROWSERIFY=$(BINDIR)/browserify
LJS=$(BINDIR)/ljs
DAVID=$(BINDIR)/david
NPMFREEZE=$(BINDIR)/npm-freeze

DIST=dist/jsverify.standalone.js

all : test

test :
    if [ "x${TRAVIS}" = "xtrue" ]; then $(MAKE) test-travis; else $(MAKE) test-default; fi

test-default : jshint eslint jscs mocha istanbul mocha-ts david npm-freeze

test-travis : test-readme test-default

SRC=lib test fail examples helpers karma.conf.js karma.jasmine.conf.js
TSSRC=lib/jsverify.d.ts test-ts

jshint :
    $(JSHINT) $(SRC)

eslint :
    $(ESLINT) $(SRC)

jscs :
    $(JSCS) $(SRC)

tslint :
    $(TSLINT) $(TSSRC)

tests-bundle.js : test/*
    $(BROWSERIFY) -r underscore -r lodash -r q -r when -r bluebird -o tests-bundle.js test/*.js

karma : tests-bundle.js
    $(KARMA) start

jasmine : $(DIST)
    $(KARMA) start karma.jasmine.conf.js

mocha :
    $(MOCHA) --reporter spec test
    $(MOCHA) fail >/dev/null || test $$? -eq 12  # There are 12 "should fail" fixtures

mocha-ts :
    $(MOCHA) --reporter spec --require ts-node/register `find test-ts -name '*.ts'`

istanbul :
    $(ISTANBUL) cover -- $(IMOCHA) --reporter dot --timeout 10000 test
    test -f coverage/coverage.json
    $(ISTANBUL) check-coverage --statements -2 --branches -3 --functions 100 coverage/coverage.json

dist : test karma jasmine literate $(DIST)
    git clean -fdx -e node_modules

david :
    $(DAVID)

npm-freeze :
    $(NPMFREEZE) check || true

npm-freeze-manifest : npm-freeze-manifest.json

npm-freeze-manifest.json :
    $(NPMFREEZE) manifest

$(DIST) : lib/*
    $(BROWSERIFY) --no-detect-globals -s jsc -o $(DIST) ./lib/jsverify.js

literate : README.md

README.md :
    $(LJS) --no-code -o README.md lib/jsverify.js

test-readme : literate
    git diff --exit-code || (echo "README.md is generated file, run 'make README.md'" && false)