Skip to content

Commit a20cf99

Browse files
fflatenandyleejordan
authored andcommitted
add codelens tests
1 parent 849bd57 commit a20cf99

File tree

1 file changed

+105
-1
lines changed

1 file changed

+105
-1
lines changed

test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs

Lines changed: 105 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -841,7 +841,7 @@ public async Task NoMessageIfPesterCodeLensDisabled()
841841
}
842842

843843
[Fact]
844-
public async Task CanSendReferencesCodeLensRequestAsync()
844+
public async Task CanSendFunctionReferencesCodeLensRequestAsync()
845845
{
846846
string filePath = NewTestFile(@"
847847
function CanSendReferencesCodeLensRequest {
@@ -878,6 +878,110 @@ function CanSendReferencesCodeLensRequest {
878878
Assert.Equal("1 reference", codeLensResolveResult.Command.Title);
879879
}
880880

881+
[Fact]
882+
public async Task CanSendClassReferencesCodeLensRequestAsync()
883+
{
884+
string filePath = NewTestFile(@"
885+
param(
886+
[MyBaseClass]$enumValue
887+
)
888+
889+
class MyBaseClass {
890+
891+
}
892+
893+
class ChildClass : MyBaseClass, System.IDisposable {
894+
895+
}
896+
897+
$o = [MyBaseClass]::new()
898+
$o -is [MyBaseClass]
899+
");
900+
901+
CodeLensContainer codeLenses = await PsesLanguageClient
902+
.SendRequest(
903+
"textDocument/codeLens",
904+
new CodeLensParams
905+
{
906+
TextDocument = new TextDocumentIdentifier
907+
{
908+
Uri = new Uri(filePath)
909+
}
910+
})
911+
.Returning<CodeLensContainer>(CancellationToken.None).ConfigureAwait(true);
912+
913+
Assert.Collection(codeLenses,
914+
codeLens =>
915+
{
916+
Range range = codeLens.Range;
917+
Assert.Equal(5, range.Start.Line);
918+
Assert.Equal(6, range.Start.Character);
919+
Assert.Equal(7, range.End.Line);
920+
Assert.Equal(1, range.End.Character);
921+
},
922+
codeLens =>
923+
{
924+
Range range = codeLens.Range;
925+
Assert.Equal(9, range.Start.Line);
926+
Assert.Equal(6, range.Start.Character);
927+
Assert.Equal(11, range.End.Line);
928+
Assert.Equal(1, range.End.Character);
929+
}
930+
);
931+
932+
CodeLens baseClassCodeLens = codeLenses.First();
933+
CodeLens codeLensResolveResult = await PsesLanguageClient
934+
.SendRequest("codeLens/resolve", baseClassCodeLens)
935+
.Returning<CodeLens>(CancellationToken.None).ConfigureAwait(true);
936+
937+
Assert.Equal("4 references", codeLensResolveResult.Command.Title);
938+
}
939+
940+
[Fact]
941+
public async Task CanSendEnumReferencesCodeLensRequestAsync()
942+
{
943+
string filePath = NewTestFile(@"
944+
param(
945+
[MyEnum]$enumValue
946+
)
947+
948+
enum MyEnum {
949+
First = 1
950+
Second
951+
Third
952+
}
953+
954+
[MyEnum]::First
955+
'First' -is [MyEnum]
956+
");
957+
958+
CodeLensContainer codeLenses = await PsesLanguageClient
959+
.SendRequest(
960+
"textDocument/codeLens",
961+
new CodeLensParams
962+
{
963+
TextDocument = new TextDocumentIdentifier
964+
{
965+
Uri = new Uri(filePath)
966+
}
967+
})
968+
.Returning<CodeLensContainer>(CancellationToken.None).ConfigureAwait(true);
969+
970+
CodeLens codeLens = Assert.Single(codeLenses);
971+
972+
Range range = codeLens.Range;
973+
Assert.Equal(5, range.Start.Line);
974+
Assert.Equal(5, range.Start.Character);
975+
Assert.Equal(9, range.End.Line);
976+
Assert.Equal(1, range.End.Character);
977+
978+
CodeLens codeLensResolveResult = await PsesLanguageClient
979+
.SendRequest("codeLens/resolve", codeLens)
980+
.Returning<CodeLens>(CancellationToken.None).ConfigureAwait(true);
981+
982+
Assert.Equal("3 references", codeLensResolveResult.Command.Title);
983+
}
984+
881985
[SkippableFact]
882986
public async Task CanSendCodeActionRequestAsync()
883987
{

0 commit comments

Comments
 (0)