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":...