1 | var assert = require('assert');
|
2 | var jade = require('jade');
|
3 | var fs = require('fs');
|
4 | var path = require('path');
|
5 |
|
6 |
|
7 | var mixins = ["btn-primary","btn-info","btn-warning","btn-danger","btn-success","btn-lg-primary","btn-lg-info","btn-lg-warning","btn-lg-danger","btn-lg-success" ];
|
8 | mixins.forEach(function(m) {
|
9 | var fileTemplate = `include ../../../components/buttons
|
10 | +${m}(name)`;
|
11 | var fileName = `${m}.jade`;
|
12 | fs.writeFileSync(path.join(__dirname,"fixtures/buttons",fileName),fileTemplate);
|
13 | });
|
14 |
|
15 |
|
16 |
|
17 | var testData = [
|
18 | {
|
19 | suite: 'btn-primary mixin',
|
20 | spec: 'should render a primary button',
|
21 | fixture: 'btn-primary.jade',
|
22 | locals: { name: "Primary Button" },
|
23 | actual: '<button type="button" class="btn btn-primary">Primary Button</button>'
|
24 | },
|
25 | {
|
26 | suite: 'btn-info mixin',
|
27 | spec: 'should render a info button',
|
28 | fixture: 'btn-info.jade',
|
29 | locals: { name: "Info Button" },
|
30 | actual: '<button type="button" class="btn btn-info">Info Button</button>'
|
31 | },
|
32 | {
|
33 | suite: 'btn-warning mixin',
|
34 | spec: 'should render a warning button',
|
35 | fixture: 'btn-warning.jade',
|
36 | locals: { name: "Warning Button" },
|
37 | actual: '<button type="button" class="btn btn-warning">Warning Button</button>'
|
38 | },
|
39 | {
|
40 | suite: 'btn-danger mixin',
|
41 | spec: 'should render a danger button',
|
42 | fixture: 'btn-danger.jade',
|
43 | locals: { name: "Danger Button" },
|
44 | actual: '<button type="button" class="btn btn-danger">Danger Button</button>'
|
45 | },
|
46 | {
|
47 | suite: 'btn-success mixin',
|
48 | spec: 'should render a success button',
|
49 | fixture: 'btn-success.jade',
|
50 | locals: { name: "Success Button" },
|
51 | actual: '<button type="button" class="btn btn-success">Success Button</button>'
|
52 | },
|
53 | {
|
54 | suite: 'btn-lg-primary mixin',
|
55 | spec: 'should render a large primary button',
|
56 | fixture: 'btn-lg-primary.jade',
|
57 | locals: { name: "Large Primary Button" },
|
58 | actual: '<button type="button" class="btn btn-primary btn-lg">Large Primary Button</button>'
|
59 | },
|
60 | {
|
61 | suite: 'btn-lg-info mixin',
|
62 | spec: 'should render a large info button',
|
63 | fixture: 'btn-lg-info.jade',
|
64 | locals: { name: "Large Info Button" },
|
65 | actual: '<button type="button" class="btn btn-info btn-lg">Large Info Button</button>'
|
66 | },
|
67 | {
|
68 | suite: 'btn-lg-warning mixin',
|
69 | spec: 'should render a large warning button',
|
70 | fixture: 'btn-lg-warning.jade',
|
71 | locals: { name: "Large Warning Button" },
|
72 | actual: '<button type="button" class="btn btn-warning btn-lg">Large Warning Button</button>'
|
73 | },
|
74 | {
|
75 | suite: 'btn-lg-danger mixin',
|
76 | spec: 'should render a large danger button',
|
77 | fixture: 'btn-lg-danger.jade',
|
78 | locals: { name: "Large Danger Button" },
|
79 | actual: '<button type="button" class="btn btn-danger btn-lg">Large Danger Button</button>'
|
80 | },
|
81 | {
|
82 | suite: 'btn-lg-success mixin',
|
83 | spec: 'should render a large success button',
|
84 | fixture: 'btn-lg-success.jade',
|
85 | locals: { name: "Large Success Button" },
|
86 | actual: '<button type="button" class="btn btn-success btn-lg">Large Success Button</button>'
|
87 | },
|
88 | ];
|
89 |
|
90 | testData.forEach(function(item) {
|
91 | describe(item.suite,function() {
|
92 | it(item.spec,function() {
|
93 | var fn = jade.compileFile(path.join(__dirname,"fixtures/buttons", item.fixture));
|
94 | assert.equal(item.actual,fn(item.locals));
|
95 | });
|
96 | });
|
97 | });
|