From 07c0533ba383c9ac17b355e810e3da1295e18ad8 Mon Sep 17 00:00:00 2001 From: Frode Flaten <3436158+fflaten@users.noreply.github.com> Date: Mon, 15 Aug 2022 17:53:44 +0000 Subject: [PATCH 1/2] trim leading whitespace in Pester symbol name --- .../Services/Symbols/PesterDocumentSymbolProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PowerShellEditorServices/Services/Symbols/PesterDocumentSymbolProvider.cs b/src/PowerShellEditorServices/Services/Symbols/PesterDocumentSymbolProvider.cs index 12aa7f68a..59f132f1c 100644 --- a/src/PowerShellEditorServices/Services/Symbols/PesterDocumentSymbolProvider.cs +++ b/src/PowerShellEditorServices/Services/Symbols/PesterDocumentSymbolProvider.cs @@ -199,7 +199,7 @@ internal PesterSymbolReference( IScriptExtent scriptExtent) : base( SymbolType.Function, - testLine.TrimEnd(DefinitionTrimChars), + testLine.TrimStart().TrimEnd(DefinitionTrimChars), scriptExtent, scriptFile.FilePath, testLine) From 998970de3da3e1ae0abcd07ffa6adc14c2c635ac Mon Sep 17 00:00:00 2001 From: Frode Flaten <3436158+fflaten@users.noreply.github.com> Date: Mon, 15 Aug 2022 17:54:14 +0000 Subject: [PATCH 2/2] add test --- .../Language/SymbolsServiceTests.cs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/test/PowerShellEditorServices.Test/Language/SymbolsServiceTests.cs b/test/PowerShellEditorServices.Test/Language/SymbolsServiceTests.cs index fb3b2301a..33fdaea0e 100644 --- a/test/PowerShellEditorServices.Test/Language/SymbolsServiceTests.cs +++ b/test/PowerShellEditorServices.Test/Language/SymbolsServiceTests.cs @@ -314,8 +314,26 @@ public void FindsSymbolsInFile() [Fact] public void FindsSymbolsInPesterFile() { - List symbolsResult = FindSymbolsInFile(FindSymbolsInPesterFile.SourceDetails); - Assert.Equal(5, symbolsResult.Count); + List symbolsResult = FindSymbolsInFile(FindSymbolsInPesterFile.SourceDetails).OfType().ToList(); + Assert.Equal(5, symbolsResult.Count(r => r.SymbolType == SymbolType.Function)); + + Assert.Equal(1, symbolsResult.Count(r => r.Command == PesterCommandType.Describe)); + SymbolReference firstDescribeSymbol = symbolsResult.First(r => r.Command == PesterCommandType.Describe); + Assert.Equal("Describe \"A dummy test\"", firstDescribeSymbol.SymbolName); + Assert.Equal(1, firstDescribeSymbol.ScriptRegion.StartLineNumber); + Assert.Equal(1, firstDescribeSymbol.ScriptRegion.StartColumnNumber); + + Assert.Equal(1, symbolsResult.Count(r => r.Command == PesterCommandType.Context)); + SymbolReference firstContextSymbol = symbolsResult.First(r => r.Command == PesterCommandType.Context); + Assert.Equal("Context \"When a pester file is given\"", firstContextSymbol.SymbolName); + Assert.Equal(2, firstContextSymbol.ScriptRegion.StartLineNumber); + Assert.Equal(5, firstContextSymbol.ScriptRegion.StartColumnNumber); + + Assert.Equal(3, symbolsResult.Count(r => r.Command == PesterCommandType.It)); + SymbolReference lastItSymbol = symbolsResult.Last(r => r.Command == PesterCommandType.It); + Assert.Equal("It \"Should return describe symbols\"", lastItSymbol.SymbolName); + Assert.Equal(11, lastItSymbol.ScriptRegion.StartLineNumber); + Assert.Equal(9, lastItSymbol.ScriptRegion.StartColumnNumber); } [Fact]