Skip to content

Commit e3f7aa7

Browse files
🚸 Update methods to use colours instead of icons (#55)
1 parent 2925b48 commit e3f7aa7

File tree

11 files changed

+64
-27
lines changed

11 files changed

+64
-27
lines changed
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading

‎src/extension.ts‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import {
3232
trackTreeViewVisible,
3333
} from "./utils/telemetry"
3434
import {
35-
METHOD_ICONS,
35+
getMethodSvgIcon,
3636
type PathOperationTreeItem,
3737
PathOperationTreeProvider,
3838
} from "./vscode/pathOperationTreeProvider"
@@ -151,6 +151,7 @@ export async function activate(context: vscode.ExtensionContext) {
151151
}
152152

153153
const pathOperationProvider = new PathOperationTreeProvider(
154+
context.extensionUri,
154155
apps,
155156
groupApps(apps),
156157
)
@@ -302,7 +303,12 @@ export async function activate(context: vscode.ExtensionContext) {
302303
context.subscriptions.push(
303304
watcher,
304305
treeView,
305-
registerCommands(pathOperationProvider, codeLensProvider, groupApps),
306+
registerCommands(
307+
context.extensionUri,
308+
pathOperationProvider,
309+
codeLensProvider,
310+
groupApps,
311+
),
306312
{ dispose: () => clearInterval(telemetryFlushInterval) },
307313
)
308314
}
@@ -379,6 +385,7 @@ function registerCloudCommands(
379385
}
380386

381387
function registerCommands(
388+
extensionUri: vscode.Uri,
382389
pathOperationProvider: PathOperationTreeProvider,
383390
codeLensProvider: TestCodeLensProvider,
384391
groupApps: (
@@ -419,7 +426,8 @@ function registerCommands(
419426
.map((route) => {
420427
const path = stripLeadingDynamicSegments(route.path)
421428
return {
422-
label: `$(${METHOD_ICONS[route.method]}) ${route.method.toUpperCase()} ${path}`,
429+
label: `${route.method.toUpperCase()} ${path}`,
430+
iconPath: getMethodSvgIcon(extensionUri, route.method),
423431
description: route.functionName,
424432
detail: vscode.Uri.parse(route.location.filePath)
425433
.fsPath.replace(workspacePrefix, "")

‎src/test/providers/pathOperationTreeProvider.test.ts‎

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as assert from "node:assert"
2+
import { Uri } from "vscode"
23
import type {
34
AppDefinition,
45
RouteDefinition,
@@ -133,11 +134,13 @@ suite("getRouteLabel", () => {
133134
})
134135
})
135136

137+
const testExtUri = Uri.file("/test-extension")
138+
136139
suite("PathOperationTreeProvider", () => {
137140
let provider: PathOperationTreeProvider
138141

139142
setup(() => {
140-
provider = new PathOperationTreeProvider(mockApps)
143+
provider = new PathOperationTreeProvider(testExtUri, mockApps)
141144
})
142145

143146
test("getChildren returns apps at root level", () => {
@@ -173,7 +176,7 @@ suite("PathOperationTreeProvider", () => {
173176
makeRoute("POST", "/users"),
174177
makeRoute("PUT", "/users"),
175178
]
176-
const p = new PathOperationTreeProvider([app])
179+
const p = new PathOperationTreeProvider(testExtUri, [app])
177180
const children = p.getChildren(p.getChildren()[0])
178181
const labels = children.map((c) =>
179182
c.type === "route" ? getRouteLabel(c.route) : "",
@@ -344,7 +347,7 @@ suite("PathOperationTreeProvider", () => {
344347
location: { filePath: "users.py", line: 10, column: 0 },
345348
},
346349
]
347-
const p = new PathOperationTreeProvider([app])
350+
const p = new PathOperationTreeProvider(testExtUri, [app])
348351
const appItem = p.getChildren()[0]
349352
const route = p.getChildren(appItem).find((c) => c.type === "route")!
350353
const treeItem = p.getTreeItem(route)
@@ -363,7 +366,7 @@ suite("PathOperationTreeProvider", () => {
363366
})
364367

365368
test("getChildren returns message when no apps", () => {
366-
const emptyProvider = new PathOperationTreeProvider([])
369+
const emptyProvider = new PathOperationTreeProvider(testExtUri, [])
367370
const roots = emptyProvider.getChildren()
368371
assert.strictEqual(roots.length, 1, "Should return one message item")
369372
assert.strictEqual(roots[0].type, "message")
@@ -380,7 +383,7 @@ suite("PathOperationTreeProvider", () => {
380383
})
381384

382385
test("getTreeItem for message type", () => {
383-
const emptyProvider = new PathOperationTreeProvider([])
386+
const emptyProvider = new PathOperationTreeProvider(testExtUri, [])
384387
const msg = emptyProvider.getChildren()[0]
385388
assert.strictEqual(
386389
emptyProvider.getTreeItem(msg).label,
@@ -390,7 +393,12 @@ suite("PathOperationTreeProvider", () => {
390393

391394
test("getTreeItem for workspace type", () => {
392395
const wsRoots = groupAppsByWorkspace(mockApps)
393-
const wsProvider = new PathOperationTreeProvider(mockApps, wsRoots)
396+
397+
const wsProvider = new PathOperationTreeProvider(
398+
testExtUri,
399+
mockApps,
400+
wsRoots,
401+
)
394402
const workspace = wsProvider
395403
.getChildren()
396404
.find((r) => r.type === "workspace")
@@ -420,7 +428,8 @@ suite("PathOperationTreeProvider", () => {
420428
}
421429
const app = makeApp("app", "main.py")
422430
app.routers = [parentRouter]
423-
const p = new PathOperationTreeProvider([app])
431+
432+
const p = new PathOperationTreeProvider(testExtUri, [app])
424433
assert.strictEqual(
425434
p.getTreeItem({ type: "router", router: childRouter }).label,
426435
"/settings",
@@ -438,11 +447,11 @@ suite("PathOperationTreeProvider", () => {
438447
})
439448

440449
test("dispose cleans up", () => {
441-
new PathOperationTreeProvider([]).dispose()
450+
new PathOperationTreeProvider(testExtUri, []).dispose()
442451
})
443452

444453
test("setApps updates apps and refreshes tree", () => {
445-
const p = new PathOperationTreeProvider([])
454+
const p = new PathOperationTreeProvider(testExtUri, [])
446455
assert.strictEqual(p.getChildren()[0].type, "message")
447456
p.setApps(mockApps)
448457
assert.strictEqual(p.getChildren()[0].type, "app")
@@ -473,7 +482,11 @@ suite("PathOperationTreeProvider", () => {
473482

474483
test("getParent returns workspace for app in multi-root", () => {
475484
const wsRoots = groupAppsByWorkspace(mockApps)
476-
const wsProvider = new PathOperationTreeProvider(mockApps, wsRoots)
485+
const wsProvider = new PathOperationTreeProvider(
486+
testExtUri,
487+
mockApps,
488+
wsRoots,
489+
)
477490
const workspace = wsProvider
478491
.getChildren()
479492
.find((r) => r.type === "workspace")!
@@ -500,7 +513,7 @@ suite("PathOperationTreeProvider", () => {
500513
}
501514
const app = makeApp("app", "main.py")
502515
app.routers = [parentRouter]
503-
const p = new PathOperationTreeProvider([app])
516+
const p = new PathOperationTreeProvider(testExtUri, [app])
504517
const parent = p.getParent({ type: "router", router: childRouter })
505518
assert.strictEqual(parent?.type, "router")
506519
})

0 commit comments

Comments
 (0)