@@ -841,7 +841,7 @@ public async Task NoMessageIfPesterCodeLensDisabled()
841
841
}
842
842
843
843
[ Fact ]
844
- public async Task CanSendReferencesCodeLensRequestAsync ( )
844
+ public async Task CanSendFunctionReferencesCodeLensRequestAsync ( )
845
845
{
846
846
string filePath = NewTestFile ( @"
847
847
function CanSendReferencesCodeLensRequest {
@@ -878,6 +878,110 @@ function CanSendReferencesCodeLensRequest {
878
878
Assert . Equal ( "1 reference" , codeLensResolveResult . Command . Title ) ;
879
879
}
880
880
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
+
881
985
[ SkippableFact ]
882
986
public async Task CanSendCodeActionRequestAsync ( )
883
987
{
0 commit comments