QUnit test of logic
by ozzymcduff
HTML
<link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.12.0.css">
<script src="http://code.jquery.com/qunit/qunit-1.12.0.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script type="text/html" id="variant-template">
<div data-bind="foreach: Object.getOwnPropertyNames($data)">
<fieldset>
<legend data-bind="text:toLegend($data)"></legend>
<div data-bind="with:$parent[$data]">
<!-- ko if: isObject($data) -->
<div data-bind="template:{data:$data, name:'variant-template'}"></div>
<!-- /ko -->
<!-- ko if: !isObject($data) -->
<!-- ko text: $data -->
<!-- /ko -->
<!-- /ko -->
</div>
</fieldset>
</div>
</script>
<div id="template">
<select data-bind="options: customer.getShoppingCarts(), optionsText: 'id'">
</select>
<dl>
<dt>Customer Name:</dt>
<dd data-bind="text:customer.getName()"></dd>
<dt>Address:</dt>
<dd data-bind="text:customer.getAddress()"></dd>
<dt>Organization:</dt>
<dd data-bind="text:customer.getOrganization().getName()"></dd>
</dl>
<div data-bind="foreach: customer.getSelectedShoppingCart()">
<h3 data-bind="text: product.getName()">
</h3>
<span data-bind="text:number"></span>
<div data-bind="template:{data:product.getVariant(), name:'variant-template'}"></div>
</div>
</div>
<div id="template2">
<table>
<thead>
<tr data-bind="foreach:organizationsTable.levels">
<th data-bind="text:name"></th>
</tr>
</thead>
<tbody data-bind="foreach:organizationsTable.levelRows">
<tr data-bind="foreach:$data">
<td data-bind="if:$data">
<!-- ko text:getName() -->
<!-- /ko -->
</td>
</tr>
...
JavaScript
module("looks like fibonacci");
function fib(i) {
switch (i) {
case 0:
return 0;
case 1:
case 2:
return 1;
default:
return fib(i - 1) + fib(i - 2);
}
}
test("Generate sequence 1,1,2,3,5,8,13,21,34", function () {
var values = [1, 1, 2, 3, 5, 8, 13, 21, 34];
var i;
for (i = 0; i < values.length; i++) {
//console.log(i);
equal(values[i], fib(i + 1), "fib " + (i + 1));
}
});
var getValue = fib;
test("getValue(6)", function () {
equal(8, getValue(6));
});
test("getValue(8)", function () {
equal(21, getValue(8));
});
module("get movie lists");
var movieLists = [{ name: "New Releases",
videos: [{ "id": 70111470,
"title": "Die Hard",
"boxart": "http://cdn-0.nflximg.com/images/2891/DieHard.jpg",
"uri": "http://api.netflix.com/catalog/titles/movies/70111470",
"rating": 4.0,
"bookmark": []
}, { "id": 654356453,
"title": "Bad Boys",
"boxart": "http://cdn-0.nflximg.com/images/2891/BadBoys.jpg",
"uri": "http://api.netflix.com/catalog/titles/movies/70111470",
"rating": 5.0,
"bookmark": [{
id: 432534,
time: 65876586
}]
}]
}, {
name: "Dramas",
videos: [{
"id": 65432445,
"title": "The Chamber",
"boxart": "http://cdn-0.nflximg.com/images/2891/TheChamber.jpg",
"uri": "http://api.netflix.com/catalog/titles/movies/70111470",
"rating": 4.0,
"bookmark": []
}, { "id": 675465,
"title": "Fracture",
"boxart": "http://cdn-0.nflximg.com/images/2891/Fracture.jpg",
"uri":...