UNPKG

neovim

Version:

Nvim msgpack API client and remote plugin provider

139 lines (138 loc) 6.95 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const jestMock = __importStar(require("jest-mock")); const expect_1 = __importDefault(require("expect")); const testUtil = __importStar(require("../testUtil")); describe('Tabpage API', () => { let nvim; before(() => __awaiter(void 0, void 0, void 0, function* () { [, nvim] = testUtil.startNvim(); })); after(() => { testUtil.stopNvim(); }); it('gets the current Tabpage', () => __awaiter(void 0, void 0, void 0, function* () { const tabpage = yield nvim.tabpage; (0, expect_1.default)(tabpage).toBeInstanceOf(nvim.Tabpage); })); describe('Normal API calls', () => { let tabpage; beforeEach(() => __awaiter(void 0, void 0, void 0, function* () { tabpage = yield nvim.tabpage; })); after(() => nvim.command('tabclose')); it('gets the current tabpage number', () => __awaiter(void 0, void 0, void 0, function* () { (0, expect_1.default)(yield tabpage.number).toBe(1); })); it('is a valid tabpage', () => __awaiter(void 0, void 0, void 0, function* () { (0, expect_1.default)(yield tabpage.valid).toBe(true); })); it('adds a tabpage and switches to it', () => __awaiter(void 0, void 0, void 0, function* () { nvim.command('tabnew'); // Switch to new tabpage const tabpages = yield nvim.tabpages; (0, expect_1.default)(tabpages.length).toBe(2); nvim.tabpage = tabpages[tabpages.length - 1]; const newTabPage = yield nvim.tabpage; (0, expect_1.default)(yield newTabPage.number).toBe(2); })); it('gets current window in tabpage', () => __awaiter(void 0, void 0, void 0, function* () { const window = yield tabpage.window; (0, expect_1.default)(window).toBeInstanceOf(nvim.Window); })); it('gets list of windows in tabpage', () => __awaiter(void 0, void 0, void 0, function* () { const windows = yield tabpage.windows; (0, expect_1.default)(windows.length).toBe(1); // Add a new window yield nvim.command('vsplit'); const newWindows = yield tabpage.windows; (0, expect_1.default)(newWindows.length).toBe(2); })); it('logs an error when calling `getOption`', () => { const spy = jestMock.spyOn(tabpage.logger, 'error'); tabpage.getOption(); (0, expect_1.default)(spy.mock.calls.length).toBe(1); tabpage.setOption(); (0, expect_1.default)(spy.mock.calls.length).toBe(2); spy.mockClear(); }); it('returns null if variable is not found', () => __awaiter(void 0, void 0, void 0, function* () { const test = yield tabpage.getVar('test'); (0, expect_1.default)(test).toBe(null); })); it('can set a t: variable', () => __awaiter(void 0, void 0, void 0, function* () { tabpage.setVar('test', 'testValue'); (0, expect_1.default)(yield tabpage.getVar('test')).toBe('testValue'); (0, expect_1.default)(yield nvim.eval('t:test')).toBe('testValue'); })); it('can delete a t: variable', () => __awaiter(void 0, void 0, void 0, function* () { tabpage.deleteVar('test'); (0, expect_1.default)(yield nvim.eval('exists("t:test")')).toBe(0); (0, expect_1.default)(yield tabpage.getVar('test')).toBe(null); })); }); describe('Chainable API calls', () => { it('gets the current tabpage number', () => __awaiter(void 0, void 0, void 0, function* () { (0, expect_1.default)(yield nvim.tabpage.number).toBe(1); })); it('is a valid tabpage', () => __awaiter(void 0, void 0, void 0, function* () { (0, expect_1.default)(yield nvim.tabpage.valid).toBe(true); })); it('adds a tabpage and switches to it', () => __awaiter(void 0, void 0, void 0, function* () { nvim.command('tabnew'); // Switch to new tabpage const tabpages = yield nvim.tabpages; // TODO (0, expect_1.default)((yield nvim.tabpages).length).toBe(2); nvim.tabpage = tabpages[tabpages.length - 1]; (0, expect_1.default)(yield nvim.tabpage.number).toBe(2); })); it('gets current window in tabpage', () => __awaiter(void 0, void 0, void 0, function* () { const window = yield nvim.tabpage.window; (0, expect_1.default)(window).toBeInstanceOf(nvim.Window); })); it('gets list of windows in tabpage', () => __awaiter(void 0, void 0, void 0, function* () { const windows = yield nvim.tabpage.windows; (0, expect_1.default)(windows.length).toBe(1); // Add a new window nvim.command('vsplit'); // TODO (0, expect_1.default)((yield nvim.tabpage.windows).length).toBe(2); })); }); });