var SetupFixture = Base.extend({ execute: function(callback) { var self = this; var cur = this._table.find('tr').eq(1); var cols = cur.children(); var columns = []; cols.each(function(i) { var colName = self.$(this).text(); columns[i] = colName; }); var rows = this._table.find('tr').length; var i = 2; async.whilst( function() { return i<rows; }, function(cb){ cur = self._table.find('tr').eq(i); cols = cur.children(); var obj = {}; cols.each(function(i) { obj[columns[i]] = self.$(this).text(); }); i++; self.setup(obj, cb); }, function complete() { callback(null); } ); } });
var DoFixture = Base.extend({ execute: function(callback) { var self = this; var $ = self.$; this._table.find('tr').each(function(i) { if (i<1) { return; } var row = $(this); var fnt = ''; var vars = []; row.children(function(i) { var val = $(this).text(); if (i % 2 == 0) { if (i > 0) { fnt = fnt + ' ' + val; } else { fnt = val; } } else { vars.push(val); } }); var camel = self._camelize(fnt); var result = self[camel].apply(self, vars); if (result === true || result === false) { if (result) { row.addClass('passed'); } else { row.addClass('failed'); } } }); callback(null); } });
var Base = require('fixtures/Base'); var TableFixture = Base.extend({ execute: function(callback) { var self = this; var table = this._table; this.doStaticTable(table.find('tr').length - 1, callback); }, doStaticTable: function(rows, callback) { callback(null); } }); module.exports = TableFixture;