119 lines
4.1 KiB
JavaScript
119 lines
4.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Red Hat. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
const testHelper_1 = require("./utils/testHelper");
|
|
const serviceSetup_1 = require("./utils/serviceSetup");
|
|
const assert = require("assert");
|
|
const yamlSettings_1 = require("../src/yamlSettings");
|
|
describe('Formatter Tests', () => {
|
|
let languageHandler;
|
|
let yamlSettings;
|
|
before(() => {
|
|
const languageSettingsSetup = new serviceSetup_1.ServiceSetup().withFormat();
|
|
const { languageHandler: langHandler, yamlSettings: settings } = (0, testHelper_1.setupLanguageService)(languageSettingsSetup.languageSettings);
|
|
languageHandler = langHandler;
|
|
yamlSettings = settings;
|
|
});
|
|
// Tests for formatter
|
|
describe('Formatter', function () {
|
|
describe('Test that formatter works with custom tags', function () {
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
function parseSetup(content, options = {}) {
|
|
const testTextDocument = (0, testHelper_1.setupTextDocument)(content);
|
|
yamlSettings.documents = new yamlSettings_1.TextDocumentTestManager();
|
|
yamlSettings.documents.set(testTextDocument);
|
|
yamlSettings.yamlFormatterSettings = options;
|
|
return languageHandler.formatterHandler({
|
|
options,
|
|
textDocument: testTextDocument,
|
|
});
|
|
}
|
|
it('Formatting works without custom tags', () => {
|
|
const content = 'cwd: test';
|
|
const edits = parseSetup(content);
|
|
assert.notEqual(edits.length, 0);
|
|
assert.equal(edits[0].newText, 'cwd: test\n');
|
|
});
|
|
it('Formatting works with custom tags', () => {
|
|
const content = 'cwd: !Test test';
|
|
const edits = parseSetup(content);
|
|
assert.notEqual(edits.length, 0);
|
|
assert.equal(edits[0].newText, 'cwd: !Test test\n');
|
|
});
|
|
it('Formatting wraps text', () => {
|
|
const content = `comments: >
|
|
test test test test test test test test test test test test`;
|
|
const edits = parseSetup(content, {
|
|
printWidth: 20,
|
|
proseWrap: 'always',
|
|
});
|
|
assert.equal(edits[0].newText, 'comments: >\n test test test\n test test test\n test test test\n test test test\n');
|
|
});
|
|
it('Formatting uses tabSize', () => {
|
|
const content = `map:
|
|
k1: v1
|
|
k2: v2
|
|
list:
|
|
- item1
|
|
- item2
|
|
`;
|
|
const edits = parseSetup(content, {
|
|
tabSize: 5,
|
|
});
|
|
const expected = `map:
|
|
k1: v1
|
|
k2: v2
|
|
list:
|
|
- item1
|
|
- item2
|
|
`;
|
|
assert.equal(edits[0].newText, expected);
|
|
});
|
|
it('Formatting uses tabWidth', () => {
|
|
const content = `map:
|
|
k1: v1
|
|
k2: v2
|
|
list:
|
|
- item1
|
|
- item2
|
|
`;
|
|
const edits = parseSetup(content, {
|
|
tabWidth: 5,
|
|
});
|
|
const expected = `map:
|
|
k1: v1
|
|
k2: v2
|
|
list:
|
|
- item1
|
|
- item2
|
|
`;
|
|
assert.equal(edits[0].newText, expected);
|
|
});
|
|
it('Formatting uses tabWidth over tabSize', () => {
|
|
const content = `map:
|
|
k1: v1
|
|
k2: v2
|
|
list:
|
|
- item1
|
|
- item2
|
|
`;
|
|
const edits = parseSetup(content, {
|
|
tabSize: 3,
|
|
tabWidth: 5,
|
|
});
|
|
const expected = `map:
|
|
k1: v1
|
|
k2: v2
|
|
list:
|
|
- item1
|
|
- item2
|
|
`;
|
|
assert.equal(edits[0].newText, expected);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
//# sourceMappingURL=formatter.test.js.map
|