UNPKG

3.59 kBJavaScriptView Raw
1var assert = require('assert');
2var jade = require('jade');
3var fs = require('fs');
4var path = require('path');
5
6// Write fixture data
7var 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" ];
8mixins.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
17var 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
90testData.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});