e3b56c2416
* Use labelDetails for completion item qualifiers Use labelDetails.description instead of detail for qualifier text like 'full syntax' and 'list'. This renders the text inline after the label in the completion menu, making variants immediately distinguishable without hovering. * Fix formatting
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import {complete} from "./complete.js";
|
|
import {hover} from "./hover.js";
|
|
import {registerLogger} from "./log.js";
|
|
import {getPositionFromCursor} from "./test-utils/cursor-position.js";
|
|
import {TestLogger} from "./test-utils/logger.js";
|
|
import {clearCache} from "./utils/workflow-cache.js";
|
|
|
|
registerLogger(new TestLogger());
|
|
|
|
beforeEach(() => {
|
|
clearCache();
|
|
});
|
|
|
|
describe("end-to-end", () => {
|
|
it("empty workflow completion after hover", async () => {
|
|
const input = "|";
|
|
|
|
// Issue hover first to fill the cache
|
|
await hover(...getPositionFromCursor(input));
|
|
|
|
const result = await complete(...getPositionFromCursor(input));
|
|
|
|
expect(result).not.toBeUndefined();
|
|
expect(result.length).toEqual(13);
|
|
const labelsWithDetails = result.map(x =>
|
|
x.labelDetails?.description ? `${x.label} (${x.labelDetails.description})` : x.label
|
|
);
|
|
expect(labelsWithDetails).toEqual([
|
|
"concurrency",
|
|
"concurrency (full syntax)",
|
|
"defaults",
|
|
"description",
|
|
"env",
|
|
"jobs",
|
|
"name",
|
|
"on",
|
|
"on (list)",
|
|
"on (full syntax)",
|
|
"permissions",
|
|
"permissions (full syntax)",
|
|
"run-name"
|
|
]);
|
|
});
|
|
});
|