Skip to content

Commit 5ad8b28

Browse files
committed
Merge branch dev into published
2 parents 23710cb + 6cb4cc3 commit 5ad8b28

File tree

4 files changed

+17
-11
lines changed

4 files changed

+17
-11
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ Changes to Calva.
44

55
## [Unreleased]
66

7+
## [2.0.467] - 2024-07-14
8+
9+
- Fix: [Test explorer creates a test case each time a keystroke is registered](https://github.com/BetterThanTomorrow/calva/issues/2530)
10+
711
## [2.0.466] - 2024-07-13
812

913
- Internal: Move drams-menu configuration to the Drams repository. Preparing for ways to contribute drams to Calva.

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"displayName": "Calva: Clojure & ClojureScript Interactive Programming",
44
"description": "Integrated REPL, formatter, Paredit, and more. Powered by cider-nrepl and clojure-lsp.",
55
"icon": "assets/calva.png",
6-
"version": "2.0.466",
6+
"version": "2.0.467",
77
"publisher": "betterthantomorrow",
88
"author": {
99
"name": "Better Than Tomorrow",

src/testRunner.ts

+10-8
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,15 @@ async function uriForFile(fileName: string): Promise<vscode.Uri> {
2323
}
2424

2525
// Return a valid TestItem for the namespace.
26-
// Creates a new item if one does not exist, otherwise we find the existing entry.
26+
// Creates a new item and adds it to the controller, replacing any existing item for the namespace.
2727
// If a Range is supplied, that we set the range on the returned item.
28-
function upsertNamespace(
28+
function createCleanNamespaceItem(
2929
controller: vscode.TestController,
3030
uri: vscode.Uri,
3131
nsName: string,
3232
range?: vscode.Range
3333
): vscode.TestItem {
34-
let ns = controller.items.get(nsName);
35-
if (!ns) {
36-
ns = controller.createTestItem(nsName, nsName, uri);
37-
}
34+
const ns = controller.createTestItem(nsName, nsName, uri);
3835
if (range) {
3936
ns.range = range;
4037
}
@@ -52,7 +49,7 @@ function upsertTest(
5249
varName: string,
5350
range?: vscode.Range
5451
): vscode.TestItem {
55-
const ns = upsertNamespace(controller, uri, nsName);
52+
const ns = controller.items.get(nsName);
5653
const testId = nsName + '/' + varName;
5754
let test = ns.children.get(testId);
5855
if (!test) {
@@ -483,7 +480,12 @@ function onTestTree(controller: vscode.TestController, testTree: lsp.TestTreePar
483480
}
484481
try {
485482
const uri = vscode.Uri.parse(testTree.uri);
486-
const ns = upsertNamespace(controller, uri, testTree.tree.name, createRange(testTree.tree));
483+
const ns = createCleanNamespaceItem(
484+
controller,
485+
uri,
486+
testTree.tree.name,
487+
createRange(testTree.tree)
488+
);
487489
ns.canResolveChildren = true;
488490
testTree.tree.children.forEach((c) => {
489491
upsertTest(controller, uri, testTree.tree.name, c.name, createRange(c));

0 commit comments

Comments
 (0)