Skip to content

Commit

Permalink
Add code coverage (#1193)
Browse files Browse the repository at this point in the history
Closes #1191
  • Loading branch information
ananyo2012 authored and jywarren committed Jan 24, 2017
1 parent 38333a7 commit 04f698d
Show file tree
Hide file tree
Showing 9 changed files with 274 additions and 1 deletion.
31 changes: 31 additions & 0 deletions .codeclimate.yml
@@ -0,0 +1,31 @@
---
engines:
brakeman:
enabled: true
bundler-audit:
enabled: true
duplication:
enabled: true
config:
languages:
- ruby
- javascript
eslint:
enabled: true
fixme:
enabled: true
rubocop:
enabled: true
ratings:
paths:
- Gemfile.lock
- "**.erb"
- "**.haml"
- "**.rb"
- "**.js"
exclude_paths:
- config/
- db/
- spec/
- test/
- vendor/
1 change: 1 addition & 0 deletions .eslintignore
@@ -0,0 +1 @@
**/*{.,-}min.js
213 changes: 213 additions & 0 deletions .eslintrc
@@ -0,0 +1,213 @@
ecmaFeatures:
modules: true
jsx: true

env:
amd: true
browser: true
es6: true
jquery: true
node: true

# http://eslint.org/docs/rules/
rules:
# Possible Errors
comma-dangle: [2, never]
no-cond-assign: 2
no-console: 0
no-constant-condition: 2
no-control-regex: 2
no-debugger: 2
no-dupe-args: 2
no-dupe-keys: 2
no-duplicate-case: 2
no-empty: 2
no-empty-character-class: 2
no-ex-assign: 2
no-extra-boolean-cast: 2
no-extra-parens: 0
no-extra-semi: 2
no-func-assign: 2
no-inner-declarations: [2, functions]
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-negated-in-lhs: 2
no-obj-calls: 2
no-regex-spaces: 2
no-sparse-arrays: 2
no-unexpected-multiline: 2
no-unreachable: 2
use-isnan: 2
valid-jsdoc: 0
valid-typeof: 2

# Best Practices
accessor-pairs: 2
block-scoped-var: 0
complexity: [2, 6]
consistent-return: 0
curly: 0
default-case: 0
dot-location: 0
dot-notation: 0
eqeqeq: 2
guard-for-in: 2
no-alert: 2
no-caller: 2
no-case-declarations: 2
no-div-regex: 2
no-else-return: 0
no-empty-label: 2
no-empty-pattern: 2
no-eq-null: 2
no-eval: 2
no-extend-native: 2
no-extra-bind: 2
no-fallthrough: 2
no-floating-decimal: 0
no-implicit-coercion: 0
no-implied-eval: 2
no-invalid-this: 0
no-iterator: 2
no-labels: 0
no-lone-blocks: 2
no-loop-func: 2
no-magic-number: 0
no-multi-spaces: 0
no-multi-str: 0
no-native-reassign: 2
no-new-func: 2
no-new-wrappers: 2
no-new: 2
no-octal-escape: 2
no-octal: 2
no-proto: 2
no-redeclare: 2
no-return-assign: 2
no-script-url: 2
no-self-compare: 2
no-sequences: 0
no-throw-literal: 0
no-unused-expressions: 2
no-useless-call: 2
no-useless-concat: 2
no-void: 2
no-warning-comments: 0
no-with: 2
radix: 2
vars-on-top: 0
wrap-iife: 2
yoda: 0

# Strict
strict: 0

# Variables
init-declarations: 0
no-catch-shadow: 2
no-delete-var: 2
no-label-var: 2
no-shadow-restricted-names: 2
no-shadow: 0
no-undef-init: 2
no-undef: 0
no-undefined: 0
no-unused-vars: 0
no-use-before-define: 0

# Node.js and CommonJS
callback-return: 2
global-require: 2
handle-callback-err: 2
no-mixed-requires: 0
no-new-require: 0
no-path-concat: 2
no-process-exit: 2
no-restricted-modules: 0
no-sync: 0

# Stylistic Issues
array-bracket-spacing: 0
block-spacing: 0
brace-style: 0
camelcase: 0
comma-spacing: 0
comma-style: 0
computed-property-spacing: 0
consistent-this: 0
eol-last: 0
func-names: 0
func-style: 0
id-length: 0
id-match: 0
indent: 0
jsx-quotes: 0
key-spacing: 0
linebreak-style: 0
lines-around-comment: 0
max-depth: 0
max-len: 0
max-nested-callbacks: 0
max-params: 0
max-statements: [2, 30]
new-cap: 0
new-parens: 0
newline-after-var: 0
no-array-constructor: 0
no-bitwise: 0
no-continue: 0
no-inline-comments: 0
no-lonely-if: 0
no-mixed-spaces-and-tabs: 0
no-multiple-empty-lines: 0
no-negated-condition: 0
no-nested-ternary: 0
no-new-object: 0
no-plusplus: 0
no-restricted-syntax: 0
no-spaced-func: 0
no-ternary: 0
no-trailing-spaces: 0
no-underscore-dangle: 0
no-unneeded-ternary: 0
object-curly-spacing: 0
one-var: 0
operator-assignment: 0
operator-linebreak: 0
padded-blocks: 0
quote-props: 0
quotes: 0
require-jsdoc: 0
semi-spacing: 0
semi: 0
sort-vars: 0
space-after-keywords: 0
space-before-blocks: 0
space-before-function-paren: 0
space-before-keywords: 0
space-in-parens: 0
space-infix-ops: 0
space-return-throw-case: 0
space-unary-ops: 0
spaced-comment: 0
wrap-regex: 0

# ECMAScript 6
arrow-body-style: 0
arrow-parens: 0
arrow-spacing: 0
constructor-super: 0
generator-star-spacing: 0
no-arrow-condition: 0
no-class-assign: 0
no-const-assign: 0
no-dupe-class-members: 0
no-this-before-super: 0
no-var: 0
object-shorthand: 0
prefer-arrow-callback: 0
prefer-const: 0
prefer-reflect: 0
prefer-spread: 0
prefer-template: 0
require-yield: 0
5 changes: 4 additions & 1 deletion .travis.yml
Expand Up @@ -3,6 +3,9 @@ sudo: required
services:
- docker

before_install:
- echo -e "repo_token:\n $COVERALLS_REPO_TOKEN" >> ./.coveralls.yml

install:
- cp config/database.yml.example config/database.yml
- cp db/schema.rb.example db/schema.rb
Expand All @@ -13,4 +16,4 @@ install:
- docker-compose run web bower install --allow-root

script:
- docker-compose run web bash -c "rake test:all"
- docker-compose run -e CI=TRUE web bash -c "rake test:all"
1 change: 1 addition & 0 deletions Gemfile
Expand Up @@ -48,6 +48,7 @@ group :test do
gem 'timecop'
gem 'jasmine-rails'
gem 'jasmine-jquery-rails'
gem 'coveralls', require: false
end

# run with `bundle install --without production` to exclude these
Expand Down
16 changes: 16 additions & 0 deletions Gemfile.lock
Expand Up @@ -54,9 +54,16 @@ GEM
commonjs (0.2.7)
composite_primary_keys (5.0.14)
activerecord (~> 3.2.0, >= 3.2.9)
coveralls (0.8.18)
json (>= 1.8, < 3)
simplecov (~> 0.12.0)
term-ansicolor (~> 1.3)
thor (~> 0.19.1)
tins (~> 1.6)
descendants_tracker (0.0.4)
thread_safe (~> 0.3, >= 0.3.1)
diff-lcs (1.2.5)
docile (1.1.5)
domain_name (0.5.20160826)
unf (>= 0.0.5, < 1.0.0)
enumerable-lazy (0.0.1)
Expand Down Expand Up @@ -238,6 +245,11 @@ GEM
scrypt (1.2.1)
ffi-compiler (>= 0.0.2)
rake
simplecov (0.12.0)
docile (~> 1.1.0)
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.0)
sprockets (2.2.3)
hike (~> 1.2)
multi_json (~> 1.0)
Expand All @@ -259,6 +271,8 @@ GEM
rails (>= 3)
sunspot (= 2.2.6)
sunspot_solr (2.2.6)
term-ansicolor (1.4.0)
tins (~> 1.0)
test-unit (3.2.1)
power_assert
therubyracer (0.12.2)
Expand All @@ -268,6 +282,7 @@ GEM
thread_safe (0.3.5)
tilt (1.4.1)
timecop (0.8.1)
tins (1.13.0)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
Expand All @@ -294,6 +309,7 @@ DEPENDENCIES
byebug
coffee-rails (~> 3.2.1)
composite_primary_keys
coveralls
execjs
friendly_id
geocoder
Expand Down
2 changes: 2 additions & 0 deletions README.md
Expand Up @@ -4,6 +4,8 @@ PublicLab.org
[![Build Status](https://travis-ci.org/publiclab/plots2.svg)](https://travis-ci.org/publiclab/plots2)
[![badge](http://img.shields.io/badge/first--timers--only-friendly-blue.svg?style=flat-square)](https://github.com/publiclab/plots2/projects/2)
[![Join the chat at https://gitter.im/publiclab/publiclab](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/publiclab/publiclab)
[![Code Climate](https://codeclimate.com/github/publiclab/plots2/badges/gpa.svg)](https://codeclimate.com/github/publiclab/plots2)
[![Coverage Status](https://coveralls.io/repos/github/publiclab/plots2/badge.svg?branch=master)](https://coveralls.io/github/publiclab/plots2?branch=master)

The content management system for the Public Lab research community, the plots2 web application is a combination of a group research blog of what we call "research notes" and a wiki. Read more about [the data model here](https://github.com/publiclab/plots2/blob/master/doc/DATA_MODEL.md).

Expand Down
3 changes: 3 additions & 0 deletions lib/tasks/test.rake
Expand Up @@ -2,12 +2,15 @@
namespace :test do
desc "Run rails and jasmine tests"
task :all do
require 'coveralls/rake/task'
Coveralls::RakeTask.new
puts "Running Rails tests"
Rake::Task["test"].execute
#puts "Running Solr-dependent tests"
#Rake::Task["test:solr"].execute
puts "Running jasmine tests headlessly"
Rake::Task["spec:javascript"].execute
Rake::Task["coveralls:push"].execute
end

desc "Run rails and jasmine tests"
Expand Down
3 changes: 3 additions & 0 deletions test/test_helper.rb
@@ -1,3 +1,6 @@
require 'coveralls'
Coveralls.wear_merged!

ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
Expand Down

0 comments on commit 04f698d

Please sign in to comment.