captaindash/node-mention-api

View on GitHub
Makefile

Summary

Maintainability
Test Coverage
# Binaries
CD ?= cd
CODECLIMATE ?= ./node_modules/.bin/codeclimate
CP ?= cp
GIT ?= git
ISTANBUL ?= ./node_modules/.bin/istanbul
JSCS ?= ./node_modules/.bin/jscs
JSHINT ?= ./node_modules/.bin/jshint
MOCHA ?= ./node_modules/.bin/mocha
_MOCHA ?= ./node_modules/.bin/_mocha
NPM ?= npm

# Options
ISTANBUL_FLAGS ?=
JSCS_FLAGS ?=
JSHINT_FLAGS ?=
MOCHA_FLAGS ?= --recursive --check-leaks

# Sources
LIB := lib
TESTS := test
TESTS_COMMON := $(TESTS)/common.js
UNIT_TESTS := $(TESTS)/unit
FUNCTIONAL_TESTS := $(TESTS)/functional
COVERAGE := coverage
LCOV := $(COVERAGE)/lcov.info

# Targets

all: node_modules lint cover

node_modules:
    $(NPM) install

jshint: $(LIB)
    $(JSHINT) $(JSHINT_FLAGS) $^

jscs: $(LIB)
    $(JSCS) $(JSCS_FLAGS) $^

lint: jshint jscs

test: test-unit test-functional

test-unit: $(TESTS_COMMON) $(UNIT_TESTS)
    $(MOCHA) $(MOCHA_FLAGS) --bail $^

test-functional: $(TESTS_COMMON) $(FUNCTIONAL_TESTS)
    $(MOCHA) $(MOCHA_FLAGS) --bail $^

$(COVERAGE): $(TESTS_COMMON) $(UNIT_TESTS)
    $(ISTANBUL) $(ISTANBUL_FLAGS) cover $(_MOCHA) --dir $(COVERAGE) -- $(MOCHA_FLAGS) $^

$(LCOV): $(TESTS_COMMON) $(UNIT_TESTS)
    $(ISTANBUL) $(ISTANBUL_FLAGS) cover $(_MOCHA) --dir $(COVERAGE) --report lcovonly -- $(MOCHA_FLAGS) $^

push-lcov: $(LCOV)
    $(CODECLIMATE) < $<

.PHONY: all jshint jscs lint test test-unit test-functional push-lcov