-
Notifications
You must be signed in to change notification settings - Fork 882
Expand file tree
/
Copy pathcrafts-test.js
More file actions
116 lines (78 loc) · 3.98 KB
/
Copy pathcrafts-test.js
File metadata and controls
116 lines (78 loc) · 3.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
var assert = require('chai').assert;
var { createMaterial, calculateMaterialCost, createSupplyCloset, addSupply, createNewProject, compareMaterials } = require('./crafts');
describe('Crafting', function() {
describe('Material', function() {
it.skip('should create a new material', function() {
var yarn = createMaterial('yarn', 'skein', 6.99);
assert.equal(yarn.name, 'yarn');
assert.equal(yarn.unit, 'skein');
assert.equal(yarn.costPerUnit, 6.99);
});
it.skip('should calculate cost of material', function() {
var fabric = createMaterial('fabric', 'yard', 12.50);
var fabricCost = calculateMaterialCost(fabric, 4);
assert.equal(fabricCost, `4 yards of fabric costs $50.`);
var paint = createMaterial('paint', 'pint', 3.95);
var paintCost = calculateMaterialCost(paint, 5);
assert.equal(paintCost, `5 pints of paint costs $19.75.`);
});
});
describe('Supply Closet', function() {
it.skip('should create a supply closet', function() {
var fabric = createMaterial('fabric', 'yard', 12.50);
var paint = createMaterial('paint', 'pint', 3.95);
var yarn = createMaterial('yarn', 'skein', 6.99);
var myCloset = createSupplyCloset([fabric, paint, yarn]);
assert.deepEqual(myCloset, { supplies: ['fabric', 'paint', 'yarn'] });
});
it.skip('should be able to start empty', function() {
var myCloset = createSupplyCloset();
assert.deepEqual(myCloset, { supplies: [] });
});
it.skip('should be able to add new supplies to the supply closet', function() {
var glitter = createMaterial('glitter', 'ounce', .99);
var myCloset = createSupplyCloset([glitter]);
var thread = createMaterial('thread', 'bobbin', 3.67);
var updatedCloset = addSupply(myCloset, thread);
assert.deepEqual(updatedCloset, ['glitter', 'thread']);
});
it.skip('should not allow you to add the same supply again', function() {
var fabric = createMaterial('fabric', 'yard', 12.50);
var paint = createMaterial('paint', 'pint', 3.95);
var myCloset = createSupplyCloset([fabric, paint]);
assert.deepEqual(addSupply(myCloset, fabric), 'You already have fabric in your closet!');
})
});
describe('Project', function() {
it.skip('should create a new craft project', function() {
var thread = createMaterial('thread', 'bobbin', 3.67);
var fabric = createMaterial('aida fabric', 'yard', 15.50);
var materials = [thread, fabric];
var crossStitchProject = createNewProject(materials, 'in progress');
assert.deepEqual(crossStitchProject.materialsNeeded, materials);
assert.equal(crossStitchProject.status, 'in progress');
});
it.skip('should have a status of not started if not specified', function() {
var string = createMaterial('warp string', 'yard', .49);
var yarn = createMaterial('yarn', 'skein', 7.85);
assert.equal(createNewProject([string, yarn]).status, 'not started');
});
it.skip('should be able to see if you have the necessary supplies to start a project', function() {
var paper = createMaterial('paper', 'ream', 13.99);
var paint = createMaterial('paint', 'bottle', '4.50');
var materials = [paper, paint];
var mySupplies = createSupplyCloset(materials);
var paintProject = createNewProject(materials);
var check = compareMaterials(paintProject, mySupplies);
assert.equal(check, 'Yay! You can start this project!');
});
it.skip('should be able to see if you have the necessary supplies to start a project', function() {
var string = createMaterial('warp string', 'yard', .49);
var yarn = createMaterial('yarn', 'skein', 7.85);
var mySupplies = createSupplyCloset([string]);
var weavingProject = createNewProject([yarn, string]);
var check = compareMaterials(weavingProject, mySupplies);
assert.equal(check, 'Oh no! You need to go shopping before you can start this project!');
})
});
});