UNPKG

ink-use-stream-dimensions

Version:

Get the columns and rows of a stream in a ink app

76 lines (75 loc) 2.65 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var import_react = __toESM(require("react"), 1); var import_ava = __toESM(require("ava"), 1); var import_ink_testing_library = require("ink-testing-library"); var import_react2 = require("@testing-library/react"); var import_sinon = require("sinon"); var import_index = require("./index.js"); function setup(stdout) { const dimensions = [0, 0]; function Wrapper() { const result = (0, import_index.useStreamDimensions)(stdout); dimensions.splice(0, dimensions.length, ...result); return null; } const component = (0, import_ink_testing_library.render)(import_react.default.createElement(Wrapper, null)); return [dimensions, component]; } (0, import_ava.default)("it gets the right columns and rows", (t) => { const mockedStdout = { columns: 12, rows: 34, on: (0, import_sinon.fake)(), off: (0, import_sinon.fake)() }; const [result] = setup(mockedStdout); t.deepEqual(result, [12, 34]); }); (0, import_ava.default)("it subscribes to changes", (t) => { const mockedStdout = { columns: 12, rows: 34, on: (0, import_sinon.fake)(), off: (0, import_sinon.fake)() }; (0, import_react2.act)(() => { setup(mockedStdout); }); t.true(mockedStdout.on.calledOnce, "It should subscribe to changes"); }); (0, import_ava.default)("it cleans the stream subscription", (t) => { const mockedStdout = { columns: 12, rows: 34, on: (0, import_sinon.fake)(), off: (0, import_sinon.fake)() }; let component = null; (0, import_react2.act)(() => { ; [, component] = setup(mockedStdout); }); (0, import_react2.act)(() => { component.unmount(); }); t.true(mockedStdout.off.calledOnce, "It should remove the event on unmount"); }); //# sourceMappingURL=index.test.js.map