UNPKG

muttley

Version:
61 lines 2.97 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sinon_1 = __importDefault(require("sinon")); const assert = require("assert"); const render = require("./render"); const fs = require("fs"); describe('render', function () { describe('renderHeader', function () { it('it calls write', function () { const fakeWrite = sinon_1.default.fake(); sinon_1.default.replace(process.stdout, 'write', fakeWrite); render.renderHeader(100, 10, 12, 93982); assert(fakeWrite.called); sinon_1.default.restore(); }); }); describe('renderTable', function () { it('it handles empty table', function () { const fakeWrite = sinon_1.default.fake(); sinon_1.default.replace(process.stdout, 'write', fakeWrite); render.renderTable({ columns: [], rows: [], rowColour: () => render.FgColour.blue }); assert(fakeWrite.calledOnce); sinon_1.default.restore(); }); it('it handles non empty table', function () { const columns = [{ name: 'TEST', width: 10, just: 'l', func: (row) => row.prop1 }]; const rows = [{ prop1: 'test prop' }]; const fakeWrite = sinon_1.default.fake(); sinon_1.default.replace(process.stdout, 'write', fakeWrite); render.renderTable({ columns, rows, rowColour: () => render.FgColour.blue }); const expectedHeaderWrites = 1; const expectedRowWrites = 3 * rows.length; assert.equal(fakeWrite.callCount, expectedHeaderWrites + expectedRowWrites); sinon_1.default.restore(); }); }); describe('renderFileWindow', function () { it('it works for small window', function () { const buffer = 'line 1\nline 2\nline3\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'; sinon_1.default.replace(fs, 'readFileSync', sinon_1.default.fake.returns(buffer)); const fakeWrite = sinon_1.default.fake(); sinon_1.default.replace(process.stdout, 'write', fakeWrite); render.renderFileWindow('ignore', 10, 15); assert(fakeWrite.called); sinon_1.default.restore(); }); it('it works for big window', function () { const buffer = 'line 1\nline 2\nline3\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'; sinon_1.default.replace(fs, 'readFileSync', sinon_1.default.fake.returns(buffer)); const fakeWrite = sinon_1.default.fake(); sinon_1.default.replace(process.stdout, 'write', fakeWrite); render.renderFileWindow('ignore', 200, 15); assert(fakeWrite.called); sinon_1.default.restore(); }); }); }); //# sourceMappingURL=render.t.js.map