From 9f2f7101cde1e78498d413162078ad618ac10152 Mon Sep 17 00:00:00 2001 From: Mate Pek Date: Wed, 26 Jul 2023 07:42:41 +0200 Subject: [PATCH] revert some changes due to regression bug --- CHANGELOG.md | 6 ++++++ src/TestItemManager.ts | 3 ++- src/framework/doctest/DOCExecutable.ts | 11 +++++------ src/framework/doctest/DOCTest.ts | 8 ++++---- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e81a8061..8f950eca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] +## [4.5.1] + +### Fixed + +- regression issue related to [doctest](https://github.com/matepek/vscode-catch2-test-adapter/issues/392) + ## [4.5.0] - 2023-07-23 ### Changed diff --git a/src/TestItemManager.ts b/src/TestItemManager.ts index 942f6d70..851c76fb 100644 --- a/src/TestItemManager.ts +++ b/src/TestItemManager.ts @@ -24,12 +24,13 @@ export class TestItemManager { createOrReplace( parent: vscode.TestItem | undefined, - id: string, + testId: string, label: string, file: string | undefined, line: string | number | undefined, testData: AbstractTest | undefined, ): vscode.TestItem { + const id = testId; const uri: vscode.Uri | undefined = file ? vscode.Uri.file(file) : undefined; const item = this.controller.createTestItem(id, label, uri); if (uri) { diff --git a/src/framework/doctest/DOCExecutable.ts b/src/framework/doctest/DOCExecutable.ts index 6a46bffd..372598ae 100644 --- a/src/framework/doctest/DOCExecutable.ts +++ b/src/framework/doctest/DOCExecutable.ts @@ -78,19 +78,18 @@ export class DOCExecutable extends AbstractExecutable { description: string | undefined, skipped: string | undefined, ): Promise => { - const resolvedFile = this.findSourceFilePath(file); - const id = `${resolvedFile}:${line}:${testName}`; const tags: string[] = suiteName ? [suiteName] : []; const skippedB = skipped === 'true'; + const resolvedFile = this.findSourceFilePath(file); return this._createTreeAndAddTest( this.getTestGrouping(), - id, + testName, resolvedFile, line, tags, description, (parent: TestItemParent) => - new DOCTest(this, parent, id, testName, tags, resolvedFile, line, description, skippedB), + new DOCTest(this, parent, testName, suiteName, tags, resolvedFile, line, description, skippedB), (test: DOCTest) => test.update2(resolvedFile, line, tags, skippedB, description), ); }; @@ -156,8 +155,8 @@ export class DOCExecutable extends AbstractExecutable { subTests.unshift(p); p = p.parentTest; } - assert(p instanceof DOCTest); - params.push('--test-case=' + (p as DOCTest).getEscapedTestName()); + if (!(p instanceof DOCTest)) throw Error('unexpected doctest issue'); + params.push('--test-case=' + p.getEscapedTestName()); params.push('--subcase=' + subTests.map(s => s.id.replaceAll(',', '?')).join(',')); params.push('--subcase-filter-levels=' + subTests.length); } else if (childrenToRun.every(v => v instanceof DOCTest)) { diff --git a/src/framework/doctest/DOCTest.ts b/src/framework/doctest/DOCTest.ts index f1a5a49f..15e3ff83 100644 --- a/src/framework/doctest/DOCTest.ts +++ b/src/framework/doctest/DOCTest.ts @@ -7,8 +7,8 @@ export class DOCTest extends AbstractTest { constructor( executable: AbstractExecutable, parent: TestItemParent, - id: string, - testName: string, + testNameAsId: string, + public readonly suiteName: string | undefined, tags: string[], file: string | undefined, line: string | undefined, @@ -18,8 +18,8 @@ export class DOCTest extends AbstractTest { super( executable, parent, - id, - testName.startsWith(' Scenario:') ? testName.trimStart() : testName, + testNameAsId, + testNameAsId.startsWith(' Scenario:') ? testNameAsId.trimStart() : testNameAsId, file, line, skipped,