Files
languageservices/actions-languageservice/src/utils/transform.test.ts
T
Christopher Schleiden 97d50f74af Clean up transform function
2023-01-10 16:05:50 -08:00

76 lines
1.8 KiB
TypeScript

import {getPositionFromCursor} from "../test-utils/cursor-position";
import {transform} from "./transform";
describe("transform", () => {
it("adds : at end of line", () => {
const [doc, pos] = getPositionFromCursor("on: push\njobs:\n build:\n runs-on|");
const [newDoc, newPos] = transform(doc, pos);
expect(newDoc.getText()).toEqual(`on: push
jobs:
build:
runs-on:`);
expect(newPos.character).toEqual(11);
});
it("adds : at end of line with trailing comment", () => {
const [doc, pos] = getPositionFromCursor("on: push\njobs:\n build:\n runs-on|\n#");
const [newDoc, newPos] = transform(doc, pos);
expect(newDoc.getText()).toEqual(`on: push
jobs:
build:
runs-on:
#`);
expect(newPos.character).toEqual(11);
});
it("adds placeholder node in empty sequence", () => {
const [doc, pos] = getPositionFromCursor(`on: push
jobs:
build:
runs-on:
- |`);
const [newDoc, newPos] = transform(doc, pos);
expect(newDoc.getText()).toEqual(`on: push
jobs:
build:
runs-on:
- key`);
expect(newPos.character).toEqual(9);
});
it("adds placeholder node in empty line", () => {
const [doc, pos] = getPositionFromCursor(`on: push
jobs:
build:
runs-on:
|`);
const [newDoc, newPos] = transform(doc, pos);
expect(newDoc.getText()).toEqual(`on: push
jobs:
build:
runs-on:
key:`);
expect(newPos.character).toEqual(7);
});
it("does not transform expression lines", () => {
const [doc, pos] = getPositionFromCursor(`on: push
jobs:
build:
runs-on:
\${{ github| }}`);
const [newDoc, newPos] = transform(doc, pos);
expect(newDoc.getText()).toEqual(`on: push
jobs:
build:
runs-on:
\${{ github }}`);
expect(newPos.character).toEqual(16);
});
});