true 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +6 -1
- data/README.md +10 -5
- data/sass/_true.scss +3 -1
- data/sass/true/_messages.scss +12 -16
- data/sass/true/_modules.scss +23 -30
- data/sass/true/_results.scss +66 -0
- data/sass/true/_tests.scss +51 -0
- metadata +6 -4
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
True Changelog
|
2
2
|
==============
|
3
3
|
|
4
|
+
0.1.3 (6/7/13)
|
5
|
+
--------------
|
6
|
+
- Nest assertions within `test() {}` named tests.
|
7
|
+
- Cleaner css output.
|
8
|
+
|
4
9
|
0.1.2 (6/7/13)
|
5
10
|
--------------
|
6
|
-
- Use nesting for modules with `test-module()`
|
11
|
+
- Use nesting for modules with `test-module() {}`
|
7
12
|
- Added failure message argument to all assertions.
|
8
13
|
|
9
14
|
0.1.1 (6/6/13)
|
data/README.md
CHANGED
@@ -3,6 +3,11 @@ True
|
|
3
3
|
|
4
4
|
A testing framework for compass/sass libraries.
|
5
5
|
|
6
|
+
At this point,
|
7
|
+
True is better at testing functions than mixins -
|
8
|
+
because it is easier to test a value
|
9
|
+
than the actual property-value css output.
|
10
|
+
|
6
11
|
Install
|
7
12
|
-------
|
8
13
|
|
@@ -25,8 +30,8 @@ in your scss:
|
|
25
30
|
// Track and report results in a test module
|
26
31
|
@include test-module('My Tests') {
|
27
32
|
|
28
|
-
//
|
29
|
-
|
33
|
+
// Add tests
|
34
|
+
@include test('Feature A does The Things') {
|
30
35
|
$test-1: 3*5;
|
31
36
|
$test-2: if(something, true, false);
|
32
37
|
|
@@ -35,6 +40,7 @@ in your scss:
|
|
35
40
|
'Simple multiplication failed.');
|
36
41
|
|
37
42
|
// You can assert-equal, assert-unequal, assert-true, or assert-false.
|
43
|
+
// A test can include as many assertions as you need.
|
38
44
|
@include assert-true($test-2,
|
39
45
|
'Something returned false.');
|
40
46
|
}
|
@@ -42,6 +48,5 @@ in your scss:
|
|
42
48
|
}
|
43
49
|
```
|
44
50
|
|
45
|
-
**
|
46
|
-
|
47
|
-
and in the output css file.
|
51
|
+
**True** will report detailed results in the terminal,
|
52
|
+
and a summary of results in the output css.
|
data/sass/_true.scss
CHANGED
data/sass/true/_messages.scss
CHANGED
@@ -1,19 +1,15 @@
|
|
1
|
-
//
|
2
|
-
//
|
1
|
+
// Messages
|
2
|
+
// ========
|
3
3
|
|
4
|
-
|
5
|
-
$
|
6
|
-
|
7
|
-
@mixin pass(
|
8
|
-
$pass: $test-pass-message
|
9
|
-
) {
|
10
|
-
$test-results: append($test-results, 'p');
|
11
|
-
@debug $pass;
|
12
|
-
}
|
13
|
-
|
14
|
-
@mixin fail(
|
15
|
-
$fail: $test-fail-message
|
4
|
+
@mixin result-message(
|
5
|
+
$message,
|
6
|
+
$output
|
16
7
|
) {
|
17
|
-
|
18
|
-
|
8
|
+
@if index($output, css) {
|
9
|
+
/* #{$message} */
|
10
|
+
} @else if index($output, debug) or index($output, terminal) {
|
11
|
+
@debug $message;
|
12
|
+
} @else if index($output, warn) {
|
13
|
+
@warn $message;
|
14
|
+
}
|
19
15
|
}
|
data/sass/true/_modules.scss
CHANGED
@@ -1,47 +1,40 @@
|
|
1
1
|
// Test Modules
|
2
2
|
// ============
|
3
3
|
|
4
|
-
$test-
|
5
|
-
|
6
|
-
$module-name: null;
|
7
|
-
$test-results: null;
|
8
|
-
|
9
|
-
// Collate test results
|
10
|
-
@function collate-results(
|
11
|
-
$results
|
12
|
-
) {
|
13
|
-
$total: length($results);
|
14
|
-
$pass: 0;
|
15
|
-
$fail: 0;
|
16
|
-
|
17
|
-
@each $test in $results {
|
18
|
-
@if $test == 'p' { $pass: $pass + 1; }
|
19
|
-
@if $test == 'f' { $fail: $fail + 1; }
|
20
|
-
}
|
21
|
-
|
22
|
-
@return $total $pass $fail;
|
23
|
-
}
|
4
|
+
$test-module-results : null;
|
24
5
|
|
25
6
|
// Establish a new test module
|
26
7
|
@mixin test-module(
|
27
|
-
$name
|
28
|
-
$output: $test-output
|
8
|
+
$name
|
29
9
|
) {
|
30
|
-
|
31
|
-
$test-
|
10
|
+
// Setup
|
11
|
+
$test-result-context: module;
|
12
|
+
$test-module-results: compact();
|
13
|
+
|
14
|
+
@include result-message('
|
15
|
+
|
16
|
+
### #{$name} ------', css);
|
32
17
|
|
18
|
+
// Content
|
33
19
|
@content;
|
34
20
|
|
35
|
-
|
21
|
+
// Results
|
22
|
+
$results: collate-results($test-module-results);
|
36
23
|
$total: nth($results, 1);
|
37
24
|
$pass: nth($results, 2);
|
38
25
|
$fail: nth($results, 3);
|
39
26
|
|
40
|
-
$
|
27
|
+
$debug-message: '#{$name}: #{$total} Tests, #{$pass} Passed, #{$fail} failed';
|
28
|
+
@include result-message($debug-message, debug);
|
41
29
|
|
42
|
-
|
43
|
-
|
30
|
+
$css-message: '
|
31
|
+
Summary:
|
32
|
+
- #{$total} Tests
|
33
|
+
- #{$pass} Passed
|
34
|
+
- #{$fail} Failed';
|
35
|
+
@include result-message($css-message, css);
|
44
36
|
|
45
|
-
|
46
|
-
$test-
|
37
|
+
// Teardown
|
38
|
+
$test-result-context: null;
|
39
|
+
$test-module-results: null;
|
47
40
|
}
|
@@ -0,0 +1,66 @@
|
|
1
|
+
// Results
|
2
|
+
// =======
|
3
|
+
|
4
|
+
$test-result-context: null;
|
5
|
+
|
6
|
+
$pass-marker : p;
|
7
|
+
$fail-marker : f;
|
8
|
+
|
9
|
+
// Collate test results
|
10
|
+
@function collate-results(
|
11
|
+
$results
|
12
|
+
) {
|
13
|
+
$total: length($results);
|
14
|
+
$pass: 0;
|
15
|
+
$fail: 0;
|
16
|
+
|
17
|
+
@each $test in $results {
|
18
|
+
@if $test == $pass-marker { $pass: $pass + 1; }
|
19
|
+
@if $test == $fail-marker { $fail: $fail + 1; }
|
20
|
+
}
|
21
|
+
|
22
|
+
@return $total $pass $fail;
|
23
|
+
}
|
24
|
+
|
25
|
+
// Record the results
|
26
|
+
@mixin record-result(
|
27
|
+
$result,
|
28
|
+
$context: $test-result-context
|
29
|
+
) {
|
30
|
+
$marker: null;
|
31
|
+
|
32
|
+
@if $result == 'pass' {
|
33
|
+
$marker: $pass-marker;
|
34
|
+
} @else if $result == 'fail' {
|
35
|
+
$marker: $fail-marker;
|
36
|
+
}
|
37
|
+
|
38
|
+
// record results
|
39
|
+
@if $context == 'test' {
|
40
|
+
$test-results: append($test-results, $marker);
|
41
|
+
} @else if $context == 'module' {
|
42
|
+
$test-module-results: append($test-module-results, $marker);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
// Pass / Fail
|
47
|
+
// -----------
|
48
|
+
|
49
|
+
$test-pass-message : '.' !default;
|
50
|
+
$test-fail-message : 'F' !default;
|
51
|
+
|
52
|
+
@mixin pass(
|
53
|
+
$pass: $test-pass-message,
|
54
|
+
$context: $test-result-context
|
55
|
+
) {
|
56
|
+
@include record-result(pass, $context);
|
57
|
+
@include result-message($pass, debug);
|
58
|
+
}
|
59
|
+
|
60
|
+
@mixin fail(
|
61
|
+
$fail: $test-fail-message,
|
62
|
+
$context: $test-result-context
|
63
|
+
) {
|
64
|
+
@include record-result(fail, $context);
|
65
|
+
@include result-message($fail, warn);
|
66
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
// Tests
|
2
|
+
// =====
|
3
|
+
|
4
|
+
$test-results: null;
|
5
|
+
|
6
|
+
// Establish a new test
|
7
|
+
@mixin test(
|
8
|
+
$name
|
9
|
+
) {
|
10
|
+
// Setup
|
11
|
+
$test-results: compact();
|
12
|
+
|
13
|
+
// Content
|
14
|
+
$old-result-context: $test-result-context;
|
15
|
+
$test-result-context: test;
|
16
|
+
|
17
|
+
@content;
|
18
|
+
|
19
|
+
$test-result-context: $old-result-context;
|
20
|
+
|
21
|
+
// Results
|
22
|
+
@include report-test($name, $test-results, $test-result-context);
|
23
|
+
|
24
|
+
// Teardown
|
25
|
+
$test-results: null;
|
26
|
+
}
|
27
|
+
|
28
|
+
@mixin report-test(
|
29
|
+
$name,
|
30
|
+
$results,
|
31
|
+
$context
|
32
|
+
) {
|
33
|
+
$results: collate-results($test-results);
|
34
|
+
$total: nth($results, 1);
|
35
|
+
$pass: nth($results, 2);
|
36
|
+
$fail: nth($results, 3);
|
37
|
+
|
38
|
+
$message: '#{$name} (#{$total} assertions, #{$pass} passed, #{$fail} failed)';
|
39
|
+
|
40
|
+
@if $fail > 0 {
|
41
|
+
$fail-message: '- FAIL: ' + $message;
|
42
|
+
@include fail($fail-message, module);
|
43
|
+
@include result-message('FAIL: ' + $message, css);
|
44
|
+
}
|
45
|
+
@else {
|
46
|
+
$pass-message: '- ' + $message;
|
47
|
+
@include pass($test-pass-message, module);
|
48
|
+
@include result-message($pass-message, css);
|
49
|
+
}
|
50
|
+
|
51
|
+
}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: "true"
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 29
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 3
|
10
|
+
version: 0.1.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Eric Meyer
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-06-
|
18
|
+
date: 2013-06-07 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: compass
|
@@ -67,6 +67,8 @@ files:
|
|
67
67
|
- sass/true/_assert.scss
|
68
68
|
- sass/true/_messages.scss
|
69
69
|
- sass/true/_modules.scss
|
70
|
+
- sass/true/_results.scss
|
71
|
+
- sass/true/_tests.scss
|
70
72
|
- CHANGELOG.md
|
71
73
|
- LICENSE.txt
|
72
74
|
- README.md
|