test(builtin-commands): batch 10 (2 files)
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
/// <reference path="../../../bun-test.d.ts" />
|
||||||
|
|
||||||
|
import { describe, expect, test } from "bun:test"
|
||||||
|
import { loadBuiltinCommands } from "./commands"
|
||||||
|
|
||||||
|
describe("init-deep skill migration", () => {
|
||||||
|
test("#given builtin commands #when loaded #then init-deep no longer ships as a command", () => {
|
||||||
|
// given
|
||||||
|
|
||||||
|
// when
|
||||||
|
const commands = loadBuiltinCommands()
|
||||||
|
|
||||||
|
// then
|
||||||
|
expect(commands["init-deep"]).toBeUndefined()
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import { describe, expect, test } from "bun:test"
|
||||||
|
import { stat } from "node:fs/promises"
|
||||||
|
|
||||||
|
describe("shared skills package manifest", () => {
|
||||||
|
test("#given root package metadata #when shared-skills package is required #then workspace and tarball entries include it", async () => {
|
||||||
|
// given
|
||||||
|
const rootPackageJson = await Bun.file("package.json").json()
|
||||||
|
|
||||||
|
// when
|
||||||
|
const workspaces = rootPackageJson.workspaces
|
||||||
|
const files = rootPackageJson.files
|
||||||
|
const devDependency = rootPackageJson.devDependencies["@oh-my-opencode/shared-skills"]
|
||||||
|
const sharedPackageJson = await Bun.file("packages/shared-skills/package.json").json()
|
||||||
|
|
||||||
|
// then
|
||||||
|
expect(workspaces).toContain("packages/shared-skills")
|
||||||
|
expect(files).toContain("packages/shared-skills/skills")
|
||||||
|
expect(devDependency).toBe("workspace:*")
|
||||||
|
expect(sharedPackageJson).toEqual({
|
||||||
|
name: "@oh-my-opencode/shared-skills",
|
||||||
|
version: "0.1.0",
|
||||||
|
type: "module",
|
||||||
|
private: true,
|
||||||
|
description: "Cross-harness SKILL.md files shared between OMO and Codex",
|
||||||
|
exports: {
|
||||||
|
".": "./index.mjs",
|
||||||
|
},
|
||||||
|
files: ["index.mjs", "skills"],
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
test("#given shared user skills #when copied into the package #then frontmatter and resource directories are preserved", async () => {
|
||||||
|
// given
|
||||||
|
const copiedSkills = ["debugging", "programming", "refactor", "remove-ai-slops", "ulw-plan"] as const
|
||||||
|
|
||||||
|
// when
|
||||||
|
const skillFiles = await Promise.all(
|
||||||
|
copiedSkills.map(async (skillName) => ({
|
||||||
|
name: skillName,
|
||||||
|
content: await Bun.file(`packages/shared-skills/skills/${skillName}/SKILL.md`).text(),
|
||||||
|
})),
|
||||||
|
)
|
||||||
|
|
||||||
|
// then
|
||||||
|
for (const skill of skillFiles) {
|
||||||
|
expect(skill.content.startsWith("---\n")).toBe(true)
|
||||||
|
expect(skill.content).toContain(`name: ${skill.name}`)
|
||||||
|
}
|
||||||
|
expect((await stat("packages/shared-skills/skills/debugging/references")).isDirectory()).toBe(true)
|
||||||
|
expect((await stat("packages/shared-skills/skills/programming/references")).isDirectory()).toBe(true)
|
||||||
|
expect((await stat("packages/shared-skills/skills/programming/scripts")).isDirectory()).toBe(true)
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user