refactor(tui): extract standalone package (#31193)

This commit is contained in:
Dax
2026-06-07 01:24:27 -04:00
committed by GitHub
parent a1b2b915f3
commit 6d58d5cde1
84 changed files with 1148 additions and 1919 deletions
@@ -9,7 +9,7 @@ import { onCleanup } from "solid-js"
import { tmpdir } from "../../fixture/fixture"
import { createTuiResolvedConfig } from "../../fixture/tui-runtime"
import type { TuiKeybind } from "../../../src/config/keybind"
import { TestTuiEnvironmentProvider } from "../../fixture/tui-environment"
import { TestTuiContexts } from "../../fixture/tui-environment"
async function wait(fn: () => boolean, timeout = 2000) {
const start = Date.now()
@@ -57,7 +57,7 @@ async function mountPrompt(input: {
onCleanup(off)
return (
<TestTuiEnvironmentProvider
<TestTuiContexts
directory={input.root}
paths={{
home: input.root,
@@ -78,7 +78,7 @@ async function mountPrompt(input: {
</KVProvider>
</TuiConfigProvider>
</OpencodeKeymapProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
)
}
@@ -8,7 +8,7 @@ import { KVProvider } from "../../../src/context/kv"
import { ThemeProvider } from "../../../src/context/theme"
import { TuiConfigProvider } from "../../../src/config"
import { DiffViewerFileTree } from "../../../src/feature-plugins/system/diff-viewer-file-tree"
import { TestTuiEnvironmentProvider } from "../../fixture/tui-environment"
import { TestTuiContexts } from "../../fixture/tui-environment"
import {
allExpandedFileTreeDirectories,
buildFileTree,
@@ -180,13 +180,13 @@ async function captureSettledFrame(app: Awaited<ReturnType<typeof testRender>>)
function withTheme(component: () => JSX.Element) {
return (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<TuiConfigProvider config={createTuiResolvedConfig()}>
<KVProvider>
<ThemeProvider mode="dark">{component()}</ThemeProvider>
</KVProvider>
</TuiConfigProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
)
}
@@ -13,7 +13,7 @@ import { OpencodeKeymapProvider } from "../../../src/keymap"
import diffViewerPlugin from "../../../src/feature-plugins/system/diff-viewer"
import { createTuiPluginApi } from "../../fixture/tui-plugin"
import { createTuiResolvedConfig } from "../../fixture/tui-runtime"
import { TestTuiEnvironmentProvider } from "../../fixture/tui-environment"
import { TestTuiContexts } from "../../fixture/tui-environment"
test("closing the diff viewer returns to the route it opened from", async () => {
const viewer = await renderDiffViewer([])
@@ -152,7 +152,7 @@ async function renderDiffViewer(vcsDiff: unknown[], height = 20) {
commands.get("diff.open")?.run?.({} as never)
return (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<OpencodeKeymapProvider keymap={keymap}>
<TuiConfigProvider config={config}>
<KVProvider>
@@ -162,7 +162,7 @@ async function renderDiffViewer(vcsDiff: unknown[], height = 20) {
</KVProvider>
</TuiConfigProvider>
</OpencodeKeymapProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
)
}
+15 -15
View File
@@ -7,7 +7,7 @@ import { ProjectProvider } from "../../../src/context/project"
import { SDKProvider } from "../../../src/context/sdk"
import { SyncProviderV2, useSyncV2 } from "../../../src/context/sync-v2"
import { createEventSource, createFetch, directory, json } from "../../fixture/tui-sdk"
import { TestTuiEnvironmentProvider } from "../../fixture/tui-environment"
import { TestTuiContexts } from "../../fixture/tui-environment"
async function wait(fn: () => boolean, timeout = 2000) {
const start = Date.now()
@@ -43,7 +43,7 @@ test("sync v2 settles pending tools when a live failure arrives", async () => {
}
const app = await testRender(() => (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<SDKProvider url="http://test" directory={directory} events={events.source} fetch={calls.fetch}>
<ProjectProvider>
<SyncProviderV2>
@@ -51,7 +51,7 @@ test("sync v2 settles pending tools when a live failure arrives", async () => {
</SyncProviderV2>
</ProjectProvider>
</SDKProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
))
try {
@@ -172,7 +172,7 @@ test("sync v2 renders admitted prompts only after promotion", async () => {
}
const app = await testRender(() => (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<SDKProvider url="http://test" directory={directory} events={events.source} fetch={calls.fetch}>
<ProjectProvider>
<SyncProviderV2>
@@ -180,7 +180,7 @@ test("sync v2 renders admitted prompts only after promotion", async () => {
</SyncProviderV2>
</ProjectProvider>
</SDKProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
))
try {
@@ -236,7 +236,7 @@ test("sync v2 renders a promoted prompt when admission was missed", async () =>
}
const app = await testRender(() => (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<SDKProvider url="http://test" directory={directory} events={events.source} fetch={calls.fetch}>
<ProjectProvider>
<SyncProviderV2>
@@ -244,7 +244,7 @@ test("sync v2 renders a promoted prompt when admission was missed", async () =>
</SyncProviderV2>
</ProjectProvider>
</SDKProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
))
try {
@@ -284,7 +284,7 @@ test("sync v2 projects live context updates with their message ID", async () =>
}
const app = await testRender(() => (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<SDKProvider url="http://test" directory={directory} events={events.source} fetch={calls.fetch}>
<ProjectProvider>
<SyncProviderV2>
@@ -292,7 +292,7 @@ test("sync v2 projects live context updates with their message ID", async () =>
</SyncProviderV2>
</ProjectProvider>
</SDKProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
))
try {
@@ -339,7 +339,7 @@ test("sync v2 preserves live events while snapshot hydration is in flight", asyn
}
const app = await testRender(() => (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<SDKProvider url="http://test" directory={directory} events={events.source} fetch={calls.fetch}>
<ProjectProvider>
<SyncProviderV2>
@@ -347,7 +347,7 @@ test("sync v2 preserves live events while snapshot hydration is in flight", asyn
</SyncProviderV2>
</ProjectProvider>
</SDKProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
))
try {
@@ -389,7 +389,7 @@ test("sync v2 replaces stale cached rows while preserving in-flight live rows",
}
const app = await testRender(() => (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<SDKProvider url="http://test" directory={directory} events={events.source} fetch={calls.fetch}>
<ProjectProvider>
<SyncProviderV2>
@@ -397,7 +397,7 @@ test("sync v2 replaces stale cached rows while preserving in-flight live rows",
</SyncProviderV2>
</ProjectProvider>
</SDKProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
))
try {
@@ -458,7 +458,7 @@ test("sync v2 preserves snapshot order and metadata for in-flight updates", asyn
}
const app = await testRender(() => (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<SDKProvider url="http://test" directory={directory} events={events.source} fetch={calls.fetch}>
<ProjectProvider>
<SyncProviderV2>
@@ -466,7 +466,7 @@ test("sync v2 preserves snapshot order and metadata for in-flight updates", asyn
</SyncProviderV2>
</ProjectProvider>
</SDKProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
))
try {
+3 -3
View File
@@ -7,7 +7,7 @@ import { ProjectProvider, useProject } from "../../../src/context/project"
import { SDKProvider } from "../../../src/context/sdk"
import { useEvent } from "../../../src/context/event"
import { createEventSource, createFetch, directory } from "../../fixture/tui-sdk"
import { TestTuiEnvironmentProvider } from "../../fixture/tui-environment"
import { TestTuiContexts } from "../../fixture/tui-environment"
const projectID = "proj_test"
@@ -60,7 +60,7 @@ async function mount() {
})
const app = await testRender(() => (
<TestTuiEnvironmentProvider>
<TestTuiContexts>
<SDKProvider url="http://test" directory={directory} events={events.source} fetch={calls.fetch}>
<ProjectProvider>
<Probe
@@ -74,7 +74,7 @@ async function mount() {
/>
</ProjectProvider>
</SDKProvider>
</TestTuiEnvironmentProvider>
</TestTuiContexts>
))
await ready