flint-gs 2.0.9 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/lib/flint/version.rb +1 -1
  3. data/stylesheets/flint/functions/helpers/_helpers.scss +14 -0
  4. data/stylesheets/flint/mixins/lib/_main.scss +39 -26
  5. data/tests/bootcamp/CHANGELOG.md +70 -0
  6. data/tests/bootcamp/CONTRIBUTING.md +72 -0
  7. data/tests/bootcamp/Gruntfile.coffee +34 -0
  8. data/tests/bootcamp/LICENSE.md +7 -0
  9. data/tests/bootcamp/README.md +52 -0
  10. data/tests/bootcamp/bower.json +15 -0
  11. data/tests/bootcamp/{_bootcamp.scss → dist/_bootcamp.scss} +0 -0
  12. data/tests/bootcamp/{bootcamp.coffee → dist/bootcamp.coffee} +0 -0
  13. data/tests/bootcamp/{core → dist/core}/functions/_actual.scss +0 -0
  14. data/tests/bootcamp/{core → dist/core}/functions/_error.scss +0 -0
  15. data/tests/bootcamp/{core → dist/core}/functions/_expect.scss +0 -0
  16. data/tests/bootcamp/{core → dist/core}/functions/_not-to.scss +0 -0
  17. data/tests/bootcamp/{core → dist/core}/functions/_should.scss +0 -0
  18. data/tests/bootcamp/{core → dist/core}/functions/_to.scss +0 -0
  19. data/tests/bootcamp/{core → dist/core}/mixins/_describe.scss +0 -0
  20. data/tests/bootcamp/{core → dist/core}/mixins/_it.scss +0 -0
  21. data/tests/bootcamp/{core → dist/core}/mixins/_runner.scss +0 -0
  22. data/tests/bootcamp/{core → dist/core}/mixins/_should.scss +0 -0
  23. data/tests/bootcamp/{core → dist/core}/mixins/_xdescribe.scss +0 -0
  24. data/tests/bootcamp/{core → dist/core}/mixins/_xit.scss +0 -0
  25. data/tests/bootcamp/{core → dist/core}/variables/_helpers.scss +0 -0
  26. data/tests/bootcamp/{core → dist/core}/variables/_settings.scss +0 -0
  27. data/tests/bootcamp/{core → dist/core}/variables/_should.scss +0 -0
  28. data/tests/bootcamp/{core → dist/core}/variables/_trackers.scss +0 -0
  29. data/tests/bootcamp/{lib → dist/lib}/_sassyjson.scss +0 -0
  30. data/tests/bootcamp/{matchers → dist/matchers}/_be.scss +0 -0
  31. data/tests/bootcamp/{matchers → dist/matchers}/_equal.scss +0 -0
  32. data/tests/bootcamp/{matchers → dist/matchers}/lists/_be-empty.scss +0 -0
  33. data/tests/bootcamp/{matchers → dist/matchers}/lists/_be-longer-than.scss +0 -0
  34. data/tests/bootcamp/{matchers → dist/matchers}/lists/_be-shorter-than.scss +0 -0
  35. data/tests/bootcamp/{matchers → dist/matchers}/lists/_contain.scss +0 -0
  36. data/tests/bootcamp/{matchers → dist/matchers}/lists/_deep-contain.scss +0 -0
  37. data/tests/bootcamp/{matchers → dist/matchers}/lists/_deep-equal.scss +0 -0
  38. data/tests/bootcamp/{matchers → dist/matchers}/lists/_have-length-of.scss +0 -0
  39. data/tests/bootcamp/{matchers → dist/matchers}/numbers/_be-close-to.scss +0 -0
  40. data/tests/bootcamp/{matchers → dist/matchers}/numbers/_be-greater-than.scss +0 -0
  41. data/tests/bootcamp/{matchers → dist/matchers}/numbers/_be-less-than.scss +0 -0
  42. data/tests/bootcamp/{matchers → dist/matchers}/types/_be-falsy.scss +0 -0
  43. data/tests/bootcamp/{matchers → dist/matchers}/types/_be-null.scss +0 -0
  44. data/tests/bootcamp/{matchers → dist/matchers}/types/_be-truthy.scss +0 -0
  45. data/tests/bootcamp/{matchers → dist/matchers}/types/_have-type-of.scss +0 -0
  46. data/tests/bootcamp/{utils → dist/utils}/_contain.scss +0 -0
  47. data/tests/bootcamp/{utils → dist/utils}/_equal.scss +0 -0
  48. data/tests/bootcamp/{utils → dist/utils}/_list-join.scss +0 -0
  49. data/tests/bootcamp/{utils → dist/utils}/_power.scss +0 -0
  50. data/tests/bootcamp/package.json +63 -0
  51. data/tests/bootcamp/tasks/bootcamp.coffee +83 -0
  52. data/tests/bootcamp/test/core/functions/_actual.scss +10 -0
  53. data/tests/bootcamp/test/core/functions/_expect.scss +6 -0
  54. data/tests/bootcamp/test/core/functions/_not-to.scss +5 -0
  55. data/tests/bootcamp/test/core/functions/_should.scss +10 -0
  56. data/tests/bootcamp/test/core/functions/_to.scss +5 -0
  57. data/tests/bootcamp/test/core/mixins/_describe.scss +11 -0
  58. data/tests/bootcamp/test/core/mixins/_it.scss +5 -0
  59. data/tests/bootcamp/test/core/mixins/_should.scss +5 -0
  60. data/tests/bootcamp/test/core/mixins/_xdescribe.scss +28 -0
  61. data/tests/bootcamp/test/core/mixins/_xit.scss +12 -0
  62. data/tests/bootcamp/test/matchers/_be.scss +90 -0
  63. data/tests/bootcamp/test/matchers/_equal.scss +33 -0
  64. data/tests/bootcamp/test/matchers/lists/_be-empty.scss +12 -0
  65. data/tests/bootcamp/test/matchers/lists/_be-longer-than.scss +29 -0
  66. data/tests/bootcamp/test/matchers/lists/_be-shorter-than.scss +29 -0
  67. data/tests/bootcamp/test/matchers/lists/_contain.scss +39 -0
  68. data/tests/bootcamp/test/matchers/lists/_deep-contain.scss +51 -0
  69. data/tests/bootcamp/test/matchers/lists/_deep-equal.scss +151 -0
  70. data/tests/bootcamp/test/matchers/lists/_have-length-of.scss +31 -0
  71. data/tests/bootcamp/test/matchers/numbers/_be-close-to.scss +24 -0
  72. data/tests/bootcamp/test/matchers/numbers/_be-greater-than.scss +16 -0
  73. data/tests/bootcamp/test/matchers/numbers/_be-less-than.scss +16 -0
  74. data/tests/bootcamp/test/matchers/types/_be-falsy.scss +14 -0
  75. data/tests/bootcamp/test/matchers/types/_be-null.scss +13 -0
  76. data/tests/bootcamp/test/matchers/types/_be-truthy.scss +13 -0
  77. data/tests/bootcamp/test/matchers/types/_have-type-of.scss +17 -0
  78. data/tests/bootcamp/test/specs.scss +45 -0
  79. data/tests/bootcamp/test/utils/_contain.scss +41 -0
  80. data/tests/bootcamp/test/utils/_equal.scss +79 -0
  81. data/tests/bootcamp/test/utils/_list-join.scss +39 -0
  82. data/tests/bootcamp/test/utils/_power.scss +13 -0
  83. data/tests/input/functions/helpers/_helpers.scss +21 -0
  84. data/tests/input/output.scss +8 -7
  85. data/tests/output/output.css +4 -4
  86. metadata +158 -80
@@ -0,0 +1,52 @@
1
+ Bootcamp [![NPM version](https://badge.fury.io/js/bootcamp.png)](http://badge.fury.io/js/bootcamp) [![Build Status](https://travis-ci.org/thejameskyle/bootcamp.png?branch=master)](https://travis-ci.org/thejameskyle/bootcamp) [![Dependency Status](https://david-dm.org/thejameskyle/bootcamp.png)](https://david-dm.org/thejameskyle/bootcamp) [![devDependency Status](https://david-dm.org/thejameskyle/bootcamp/dev-status.png)](https://david-dm.org/thejameskyle/bootcamp#info=devDependencies)
2
+ ========
3
+
4
+ Jasmine-style BDD testing written in Sass for Sass.
5
+
6
+ #### [Read Introduction >](https://github.com/thejameskyle/bootcamp/wiki/Introduction)
7
+
8
+ #### [Read Setup >](https://github.com/thejameskyle/bootcamp/wiki/Setup)
9
+
10
+ #### [See Example Test Suite >](https://github.com/thejameskyle/bootcamp/wiki/Example-Test-Suite)
11
+
12
+ #### [Authoring Matchers >](https://github.com/thejameskyle/bootcamp/wiki/Authoring-Matchers)
13
+
14
+ ## Install
15
+
16
+ In the future, Bootcamp will hopefully be available in more ways, for now you can either clone the repo yourself, install via [bower](http://bower.io/), or install via [npm](https://npmjs.org/) as a grunt plugin. If you would like, please help create a [yeoman generator](http://yeoman.io/), a [ruby gem](http://rubygems.org/), or any other package manager you'd like out there.
17
+
18
+ #### Git
19
+
20
+ ```
21
+ git clone git@github.com:thejameskyle/bootcamp.git && cd bootcamp
22
+ ```
23
+
24
+ #### Bower
25
+
26
+ ```
27
+ bower install bootcamp --save-dev
28
+ ```
29
+
30
+ #### npm
31
+
32
+ ```
33
+ npm install bootcamp --save-dev
34
+ ```
35
+
36
+ ## Support
37
+
38
+ Have a question or need help? Tweet [@thejameskyle](https://twitter.com/thejameskyle).
39
+
40
+ ## Contributing
41
+
42
+ As an open-source project, contributions are more than welcome, they're extremely helpful and actively encouraged. If you see any room for improvement, open an [issue](https://github.com/thejameskyle/bootcamp/issues) or submit a [pull request](https://github.com/thejameskyle/bootcamp/pulls). Also make sure to take a look at the [contributing doc](CONTRIBUTING.md).
43
+
44
+ ## License
45
+
46
+ This project is provided under the terms of the [MIT License](LICENSE.md).
47
+
48
+ ---
49
+
50
+ Authored by **James Kyle** · [Github](https://github.com/thejameskyle) · [Twitter](https://twitter.com/thejameskyle) · [CodePen](https://codepen.com/thejameskyle)
51
+
52
+ [Built Equal >](http://www.hrc.org/donate) · [Made in Boston >](http://bostonbuilt.org/)
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "bootcamp",
3
+ "version": "1.1.7",
4
+ "homepage": "http://github.com/thejameskyle/bootcamp",
5
+ "main": "dist/bootcamp.scss",
6
+ "ignore": [
7
+ "test",
8
+ ".editorconfig",
9
+ ".gitattributes",
10
+ ".gitignore",
11
+ ".jshintrc",
12
+ ".travis.yml",
13
+ "Gruntfile.coffee"
14
+ ]
15
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "bootcamp",
3
+ "version": "1.1.7",
4
+ "description": "A pure Sass testing framework in the style of Jasmine",
5
+ "keywords": [
6
+ "bootcamp",
7
+ "sass",
8
+ "scss",
9
+ "test",
10
+ "jasmine",
11
+ "gruntplugin",
12
+ "bower"
13
+ ],
14
+ "homepage": "https://github.com/thejameskyle/bootcamp",
15
+ "bugs": "https://github.com/thejameskyle/bootcamp/issues",
16
+ "author": {
17
+ "name": "James Kyle",
18
+ "email": "me@thejameskyle.com",
19
+ "url": "https://github.com/thejameskyle"
20
+ },
21
+ "contributors": [
22
+ {
23
+ "name": "James Kyle",
24
+ "email": "me@thejameskyle.com",
25
+ "url": "https://github.com/thejameskyle"
26
+ }
27
+ ],
28
+ "main": "dist/bootcamp.coffee",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git://github.com/thejameskyle/bootcamp.git"
32
+ },
33
+ "scripts": {
34
+ "test": "grunt test"
35
+ },
36
+ "files": [
37
+ "dist/",
38
+ "tasks/"
39
+ ],
40
+ "bin": {},
41
+ "dependencies": {
42
+ "colors": "^0.6.2"
43
+ },
44
+ "devDependencies": {
45
+ "grunt": "^0.4.5",
46
+ "grunt-contrib-sass": "^0.8.0",
47
+ "grunt-contrib-watch": "^0.6.1"
48
+ },
49
+ "peerDependencies": {
50
+ "grunt": "^0.4.5",
51
+ "grunt-contrib-sass": "^0.8.0"
52
+ },
53
+ "engines": {
54
+ "node": ">=0.8.0",
55
+ "npm": ">=1.2.10"
56
+ },
57
+ "licenses": [
58
+ {
59
+ "type": "MIT",
60
+ "url": "https://github.com/thejameskyle/bootcamp/blob/master/LICENSE.md"
61
+ }
62
+ ]
63
+ }
@@ -0,0 +1,83 @@
1
+ 'use strict'
2
+
3
+ bootcamp = require '../dist/bootcamp.coffee'
4
+ colors = require 'colors'
5
+
6
+ module.exports = (grunt) ->
7
+
8
+ grunt.registerMultiTask 'bootcamp', 'Jasmine-style BDD testing written in Sass for Sass.', ->
9
+
10
+ class bootcamp.gruntTask
11
+ constructor: (@tests) ->
12
+ if @tests.incomplete
13
+ @isIncomplete()
14
+ else if @tests.success and @tests.test == 0
15
+ @isEmpty
16
+ else if @tests.success
17
+ @hasPassed()
18
+ else
19
+ @hasFailed()
20
+
21
+ log: (string) -> grunt.log.writeln string
22
+ pass: (string) -> grunt.log.success string
23
+ warn: (string) -> grunt.log.warn string
24
+ fail: (string) -> grunt.fail.warn string
25
+
26
+ logStats: ->
27
+ stats = @tests.stats + ''
28
+ stats = stats.replace /✔/g, '✔'.green
29
+ stats = stats.replace /✗/g, '✗'.red
30
+ @log stats
31
+
32
+ logSpecs: ->
33
+ specs = @tests.specs + ''
34
+ specs = specs.replace /✔/g, '✔'.green
35
+ specs = specs.replace /✗/g, '✗'.red
36
+ specs = specs.replace /Test Passed/g, 'Test passed'.green
37
+ specs = specs.replace /Test Failed/g, 'Test failed'.red
38
+ specs = specs.replace /!(.*)!(.*)\./g, '$1:$2.'.yellow
39
+ specs = specs.trim()
40
+ if specs != ''
41
+ @log '\n' + specs + '\n'
42
+
43
+ logErrors: ->
44
+ if !@tests.errors then return null
45
+ @log ''
46
+
47
+ for error in @tests.errors
48
+ error = error + ''
49
+ error = error.replace /!(.*)!(.*)/g, '$1:'.red + '$2'.yellow
50
+ @log error.yellow
51
+
52
+ isIncomplete: ->
53
+ @fail @tests.error.yellow
54
+ return true
55
+
56
+ isEmpty: ->
57
+ @logStats()
58
+ @warn 'Your tests probably haven\'t been properly set up.\nTake a look at https://github.com/thejameskyle/bootcamp/wiki/setup'
59
+ return true
60
+
61
+ hasFailed: ->
62
+ @logSpecs()
63
+ @logStats()
64
+ @fail @tests.details
65
+ @logErrors()
66
+ return false
67
+
68
+ hasPassed: ->
69
+ @logSpecs()
70
+ @logStats()
71
+ @pass @tests.details
72
+ @logErrors()
73
+ return true
74
+
75
+ @files.forEach (f) ->
76
+ f.src.filter (filepath) ->
77
+
78
+ unless grunt.file.exists filepath
79
+ grunt.log.warn 'Source file "' + filepath + '" not found.'
80
+ return false
81
+
82
+ else
83
+ new bootcamp.gruntTask bootcamp.test filepath
@@ -0,0 +1,10 @@
1
+ @include describe("Actual") {
2
+ @include it("should return the actual value") {
3
+ $expect: expect(1);
4
+ @include should( expect( actual() ), to( be( 1 )));
5
+
6
+ $expect: expect( false );
7
+ $expect: expect("hello");
8
+ @include should( expect( actual() ), to( be( "hello" )));
9
+ }
10
+ }
@@ -0,0 +1,6 @@
1
+ @include describe("Expect") {
2
+ @include it("should expect something simple") {
3
+ @include should( expect( 1 ), to( be( 1 )));
4
+ @include should( expect( a ), to( be( a )));
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ @include describe("Not to") {
2
+ @include it("should expect not to do something simple") {
3
+ @include should(expect(1), not-to(be(2)));
4
+ }
5
+ }
@@ -0,0 +1,10 @@
1
+ @include describe("Should") {
2
+ @include it("should set the text and value") {
3
+ $when: should("be the correct", "value", true);
4
+ $text: $bc-expect-text;
5
+ $value: $bc-expect;
6
+
7
+ @include should( expect( $text ), to( be("be the correct")));
8
+ @include should( expect( $value ), to( be("value")));
9
+ }
10
+ }
@@ -0,0 +1,5 @@
1
+ @include describe("To") {
2
+ @include it("should expect to do something simple") {
3
+ @include should(expect(1), to(be(1)));
4
+ }
5
+ }
@@ -0,0 +1,11 @@
1
+ @include describe("Describe") {
2
+ @include it("should describe a module") {
3
+ @include should(null, true);
4
+ }
5
+
6
+ @include describe("Describe") {
7
+ @include it("should describe a sub-module") {
8
+ @include should(null, true);
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,5 @@
1
+ @include describe("It") {
2
+ @include it("should create a new test") {
3
+ @include should(null, true);
4
+ }
5
+ }
@@ -0,0 +1,5 @@
1
+ @include describe("Should") {
2
+ @include it("should run a test") {
3
+ @include should(null, true);
4
+ }
5
+ }
@@ -0,0 +1,28 @@
1
+ $test: true;
2
+
3
+ @include xdescribe("xDescribe") {
4
+ @include it("shouldnt run") {
5
+ $test: false;
6
+ @include should(null, $test);
7
+ }
8
+
9
+ @include describe("normal submodule") {
10
+ @include it("shouldnt run sub-modules") {
11
+ $test: false;
12
+ @include should(null, $test);
13
+ }
14
+ }
15
+ }
16
+
17
+ @include describe("xDescribe") {
18
+ @include xdescribe("Submodule") {
19
+ @include it("shouldnt run sub-modules") {
20
+ $test: false;
21
+ @include should(null, $test);
22
+ }
23
+ }
24
+
25
+ @include it("should run after xdescribed sub-modules") {
26
+ @include should(null, $test);
27
+ }
28
+ }
@@ -0,0 +1,12 @@
1
+ $test: true;
2
+
3
+ @include describe("xIt") {
4
+ @include xit("shouldnt run a test") {
5
+ $test: false;
6
+ @include should(null, $test);
7
+ }
8
+
9
+ @include it("should run a later test") {
10
+ @include should(null, $test);
11
+ }
12
+ }
@@ -0,0 +1,90 @@
1
+ @include describe("be") {
2
+ @include it("should expect to be something") {
3
+ @include should( expect( 1 ), to( be( 1 )));
4
+ @include should( expect( a ), to( be( a )));
5
+ @include should( expect( true ), to( be( true )));
6
+ @include should( expect( false ), to( be( false )));
7
+ @include should( expect( null ), to( be( null )));
8
+ }
9
+
10
+ @include it("should expect not to be something") {
11
+ @include should( expect( 1 ), not-to( be( 2 )));
12
+ @include should( expect( a ), not-to( be( b )));
13
+ @include should( expect( true ), not-to( be( false )));
14
+ @include should( expect( false ), not-to( be( true )));
15
+ @include should( expect( null ), not-to( be( valid )));
16
+ }
17
+
18
+ @include it("should expect two equal values to be equal") {
19
+ @include should( expect( 1 ), to( be( 1 )));
20
+ @include should( expect( -1 ), to( be( -1 )));
21
+ @include should( expect( a ), to( be( a )));
22
+ @include should( expect( false ), to( be( false )));
23
+ }
24
+
25
+ @include it("should expect two non-equal values not to be equal") {
26
+ @include should( expect( 1 ), not-to( be( 2 )));
27
+ @include should( expect( -1 ), not-to( be( 1 )));
28
+ @include should( expect( a ), not-to( be( b )));
29
+ @include should( expect( false ), not-to( be( true )));
30
+ }
31
+
32
+ @include it("should expect two equal lists to be equal") {
33
+ @include should(expect( (1, 2, 3) ), to( be( (1, 2, 3) )));
34
+ @include should(expect( ("a", "b", "c") ), to( be( ("a", "b", "c") )));
35
+ @include should(expect( (true, false, true) ), to( be( (true, false, true) )));
36
+ }
37
+
38
+ @include it("should expect two unequal lists not to be equal") {
39
+ @include should(expect( (3, 2, 1) ), not-to( be( (1, 2, 3) )));
40
+ @include should(expect( ("c", "b", "a") ), not-to( be( ("a", "b", "c") )));
41
+ @include should(expect( (false, true, false) ), not-to( be( (true, false, true) )));
42
+ }
43
+
44
+ @include it("should expect two equal lists with different seperators to be equal") {
45
+ @include should(expect( 1 2 3 ), to( be( (1, 2, 3) )));
46
+ @include should(expect( "a" "b" "c" ), to( be( ("a", "b", "c") )));
47
+ @include should(expect( true false true ), to( be( (true, false, true) )));
48
+ }
49
+
50
+ @include it("should expect two equal lists built up programmatically to be equal") {
51
+ $numbers: 1, 2, 3;
52
+ $strings: "a", "b", "c";
53
+ $booleans: true, false, true;
54
+
55
+ $numbers-out: ();
56
+ $strings-out: ();
57
+ $booleans-out: ();
58
+
59
+ @for $i from 1 through 3 {
60
+ $numbers-out: append($numbers-out, nth($numbers, $i), comma);
61
+ $strings-out: append($strings-out, nth($strings, $i), comma);
62
+ $booleans-out: append($booleans-out, nth($booleans, $i), comma);
63
+ }
64
+
65
+ @include should(expect($numbers-out ), to( be( (1, 2, 3) )));
66
+ @include should(expect($strings-out ), to( be( ("a", "b", "c") )));
67
+ @include should(expect($booleans-out), to( be( (true, false, true) )));
68
+ }
69
+
70
+ @include it("should expect two unequal lists built up programmatically not to be equal") {
71
+ $numbers: 1, 2, 3;
72
+ $strings: "a", "b", "c";
73
+ $booleans: true, false, true;
74
+
75
+ $numbers-out: ();
76
+ $strings-out: ();
77
+ $booleans-out: ();
78
+
79
+ @for $i from 1 through 3 {
80
+ $numbers-out: append($numbers-out, nth($numbers, $i), comma);
81
+ $strings-out: append($strings-out, nth($strings, $i), comma);
82
+ $booleans-out: append($booleans-out, nth($booleans, $i), comma);
83
+ }
84
+
85
+ @include should(expect($numbers-out ), not-to( be( (3, 2, 1) )));
86
+ @include should(expect($strings-out ), not-to( be( ("c", "b", "a") )));
87
+ @include should(expect($booleans-out), not-to( be( (false, true, false) )));
88
+ }
89
+ }
90
+