(function(g,$) { describe("vuHelper tests", function() { beforeEach(function() { JKTestUtils.loadFixtures('/app/views/clients/_vu_meters.html.erb'); JKTestUtils.loadFixtures('/spec/javascripts/fixtures/vuHelpers.htm'); }); describe("renderVU", function() { describe("with defaults", function() { it("should add table.vu-vertical to selector", function() { JK.VuHelpers.renderVU('#vu'); var tableCount = $('#vu table.vu.vertical').length; expect(tableCount).toEqual(1); var $light = $('#vu .vulight').first(); var width = $light.attr("width"); var height = $light.attr("height"); expect(width).toEqual('3'); expect(height).toEqual('17'); }); }); describe("default red/green split", function() { it("should split 8 green/4 red with defaults", function() { JK.VuHelpers.renderVU('#vu'); var greenCount = $('#vu td.vulight.vu-green-off').length; var vuHTML = $('#vu').html(); expect(greenCount).toEqual(8); var redCount = $('#vu td.vulight.vu-red-off').length; expect(redCount).toEqual(4); }); }); describe("horizontal type", function() { it("should add table.vu-horizontal to selector", function() { JK.VuHelpers.renderVU('#vu', {vuType: "horizontal"}); var tableCount = $('#vu table.vu.horizontal').length; expect(tableCount).toEqual(1); }); }); describe("set lightCount to 10", function() { it("should render 10 lights", function() { JK.VuHelpers.renderVU('#vu', {lightCount:10}); var rowCount = $('#vu table tr').length; expect(rowCount).toEqual(10); }); }); describe("set lightCount to 10, horizontal", function() { it("should render 10 lights", function() { JK.VuHelpers.renderVU('#vu', {lightCount:10, vuType: "horizontal"}); var rowCount = $('#vu table td').length; expect(rowCount).toEqual(10); }); }); describe("set lightWidth to 5", function() { it("should render 10 lights", function() { JK.VuHelpers.renderVU('#vu', {lightCount:10}); var rowCount = $('#vu table tr').length; expect(rowCount).toEqual(10); }); }); }); describe("updateVU", function() { describe("horizontal", function() { describe("zero value", function() { it("should light nothing", function() { JK.VuHelpers.renderVU('#vu', {vuType: 'horizontal'}); JK.VuHelpers.updateVU('#vu', 0.0); var $greenLightsOn = $('#vu .vu-green-on'); var $redLightsOn = $('#vu .vu-red-on'); expect($greenLightsOn.length).toEqual(0); expect($redLightsOn.length).toEqual(0); }); }); describe("0.5 value", function() { it("should light six green", function() { JK.VuHelpers.renderVU('#vu', {vuType: 'horizontal'}); JK.VuHelpers.updateVU('#vu', 0.5); var $greenLightsOn = $('#vu .vu-green-on'); var $redLightsOn = $('#vu .vu-red-on'); expect($greenLightsOn.length).toEqual(6); expect($redLightsOn.length).toEqual(0); }); }); describe("1.0 value", function() { it("should light eight green, four red", function() { JK.VuHelpers.renderVU('#vu', {vuType:'horizontal'}); JK.VuHelpers.updateVU('#vu', 1.0); var $greenLightsOn = $('#vu .vu-green-on'); var $redLightsOn = $('#vu .vu-red-on'); expect($greenLightsOn.length).toEqual(8); expect($redLightsOn.length).toEqual(4); }); }); describe("0.5 value, 6 lights", function() { it("should light three green", function() { JK.VuHelpers.renderVU('#vu', {vuType:'horizontal', lightCount: 6}); JK.VuHelpers.updateVU('#vu', 0.5); var $greenLightsOn = $('#vu .vu-green-on'); var $redLightsOn = $('#vu .vu-red-on'); expect($greenLightsOn.length).toEqual(3); expect($redLightsOn.length).toEqual(0); }); }); }); }); }); })(window, jQuery);