21
21
*/
22
22
package com .github ._1c_syntax .bsl .languageserver .aop .sentry ;
23
23
24
+ import com .github ._1c_syntax .bsl .languageserver .ClientCapabilitiesHolder ;
24
25
import com .github ._1c_syntax .bsl .languageserver .LanguageClientHolder ;
25
26
import com .github ._1c_syntax .bsl .languageserver .configuration .LanguageServerConfiguration ;
26
27
import com .github ._1c_syntax .bsl .languageserver .configuration .SendErrorsMode ;
27
28
import com .github ._1c_syntax .bsl .languageserver .util .CleanupContextBeforeClassAndAfterEachTestMethod ;
28
29
import com .github ._1c_syntax .bsl .languageserver .utils .Resources ;
29
30
import io .sentry .Hint ;
30
31
import io .sentry .SentryEvent ;
32
+ import org .eclipse .lsp4j .ClientCapabilities ;
31
33
import org .eclipse .lsp4j .MessageActionItem ;
32
34
import org .eclipse .lsp4j .services .LanguageClient ;
33
35
import org .junit .jupiter .api .Test ;
@@ -54,6 +56,9 @@ class PermissionFilterBeforeSendCallbackTest {
54
56
@ Autowired
55
57
private LanguageClientHolder languageClientHolder ;
56
58
59
+ @ Autowired
60
+ private ClientCapabilitiesHolder clientCapabilitiesHolder ;
61
+
57
62
@ Test
58
63
void sendOnlyOnSendMode () {
59
64
@@ -168,6 +173,7 @@ void sendIfUserGavePermission() {
168
173
when (languageClient .showMessageRequest (any ())).thenReturn (CompletableFuture .completedFuture (answer ));
169
174
170
175
languageClientHolder .connect (languageClient );
176
+ clientCapabilitiesHolder .setCapabilities (mock (ClientCapabilities .class ));
171
177
172
178
var event = new SentryEvent ();
173
179
@@ -180,6 +186,35 @@ void sendIfUserGavePermission() {
180
186
181
187
}
182
188
189
+ @ Test
190
+ void dontAskIfServerWasNotInitialized () {
191
+
192
+ // given
193
+ configuration .setSendErrors (SendErrorsMode .ASK );
194
+
195
+ var languageClient = mock (LanguageClient .class );
196
+ var answerTitle = Resources .getResourceString (
197
+ configuration .getLanguage (),
198
+ PermissionFilterBeforeSendCallback .class ,
199
+ "answer_send"
200
+ );
201
+ var answer = new MessageActionItem (answerTitle );
202
+ when (languageClient .showMessageRequest (any ())).thenReturn (CompletableFuture .completedFuture (answer ));
203
+
204
+ languageClientHolder .connect (languageClient );
205
+ clientCapabilitiesHolder .setCapabilities (null );
206
+
207
+ var event = new SentryEvent ();
208
+
209
+ // when
210
+ var filteredEvent = permissionFilter .execute (event , mock (Hint .class ));
211
+
212
+ // then
213
+ assertThat (filteredEvent ).isNull ();
214
+ assertThat (configuration .getSendErrors ()).isEqualTo (SendErrorsMode .ASK );
215
+
216
+ }
217
+
183
218
@ Test
184
219
void notSendNextTimeIfUserGavePermissionOnce () {
185
220
@@ -196,6 +231,7 @@ void notSendNextTimeIfUserGavePermissionOnce() {
196
231
when (languageClient .showMessageRequest (any ())).thenReturn (CompletableFuture .completedFuture (answer ));
197
232
198
233
languageClientHolder .connect (languageClient );
234
+ clientCapabilitiesHolder .setCapabilities (mock (ClientCapabilities .class ));
199
235
200
236
var event = new SentryEvent ();
201
237
0 commit comments