Просмотр исходного кода

chore: fix test to have deterministic testing (#1401)

Yordis Prieto 8 месяцев назад
Родитель
Сommit
4c34b69ae6

+ 1 - 0
packages/opencode/test/fixtures/example/broken.ts

@@ -0,0 +1 @@
+// Test fixture for ListTool

+ 1 - 0
packages/opencode/test/fixtures/example/cli.ts

@@ -0,0 +1 @@
+// Test fixture for ListTool

+ 1 - 0
packages/opencode/test/fixtures/example/ink.tsx

@@ -0,0 +1 @@
+// Test fixture for ListTool

+ 5 - 13
packages/opencode/test/tool/__snapshots__/tool.test.ts.snap

@@ -1,17 +1,9 @@
-// Bun Snapshot v1, https://goo.gl/fbAQLP
+// Bun Snapshot v1, https://bun.sh/docs/test/snapshots
 
 exports[`tool.ls basic 1`] = `
-"- /home/thdxr/dev/projects/sst/opencode/js/example/
-  - home/
-    - thdxr/
-      - dev/
-        - projects/
-          - sst/
-            - opencode/
-              - js/
-                - example/
-                  - ink.tsx
-                  - broken.ts
-                  - cli.ts
+"packages/opencode/test/fixtures/example/
+  broken.ts
+  cli.ts
+  ink.tsx
 "
 `;

+ 12 - 5
packages/opencode/test/tool/tool.test.ts

@@ -2,6 +2,7 @@ import { describe, expect, test } from "bun:test"
 import { App } from "../../src/app/app"
 import { GlobTool } from "../../src/tool/glob"
 import { ListTool } from "../../src/tool/ls"
+import path from "path"
 
 const ctx = {
   sessionID: "test",
@@ -12,9 +13,12 @@ const ctx = {
 const glob = await GlobTool.init()
 const list = await ListTool.init()
 
+const projectRoot = path.join(__dirname, "../..")
+const fixturePath = path.join(__dirname, "../fixtures/example")
+
 describe("tool.glob", () => {
   test("truncate", async () => {
-    await App.provide({ cwd: process.cwd() }, async () => {
+    await App.provide({ cwd: projectRoot }, async () => {
       let result = await glob.execute(
         {
           pattern: "../../node_modules/**/*",
@@ -26,7 +30,7 @@ describe("tool.glob", () => {
     })
   })
   test("basic", async () => {
-    await App.provide({ cwd: process.cwd() }, async () => {
+    await App.provide({ cwd: projectRoot }, async () => {
       let result = await glob.execute(
         {
           pattern: "*.json",
@@ -44,9 +48,12 @@ describe("tool.glob", () => {
 
 describe("tool.ls", () => {
   test("basic", async () => {
-    const result = await App.provide({ cwd: process.cwd() }, async () => {
-      return await list.execute({ path: "./example", ignore: [".git"] }, ctx)
+    const result = await App.provide({ cwd: projectRoot }, async () => {
+      return await list.execute({ path: fixturePath, ignore: [".git"] }, ctx)
     })
-    expect(result.output).toMatchSnapshot()
+
+    // Normalize absolute path to relative for consistent snapshots
+    const normalizedOutput = result.output.replace(fixturePath, "packages/opencode/test/fixtures/example")
+    expect(normalizedOutput).toMatchSnapshot()
   })
 })