Skip to content

Commit 7bce8cb

Browse files
committed
(lsp) fix tests
1 parent 99d781b commit 7bce8cb

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

crates/hdx_lsp/src/server.rs

+16-7
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use std::{
1111
io,
1212
thread::{Builder, JoinHandle},
1313
};
14-
use tracing::{debug, trace, warn};
14+
use tracing::{trace, warn};
1515

1616
use crate::TracingLayer;
1717

@@ -52,7 +52,7 @@ impl Server {
5252
.name("LspMessageHandler".into())
5353
.spawn(move || {
5454
while let Ok(message) = handler_receiver.recv() {
55-
debug!("LspMessageHandler -> {:#?}", &message);
55+
trace!("LspMessageHandler -> {:#?}", &message);
5656
if message.is_exit_notification() {
5757
break;
5858
}
@@ -76,7 +76,7 @@ impl Server {
7676
let writer = Builder::new().name("LspWriter".into()).spawn(move || {
7777
let mut stdout = io::stdout().lock();
7878
while let Ok(message) = write_receiver.recv() {
79-
trace!("{:?}", message);
79+
trace!("{:#?}", message);
8080
message.write(&mut stdout)?;
8181
}
8282
Ok(())
@@ -106,7 +106,9 @@ impl Server {
106106

107107
#[cfg(test)]
108108
mod tests {
109-
use crate::{ErrorCode, Request, Response};
109+
use std::sync::atomic::{AtomicBool, Ordering};
110+
111+
use crate::{ErrorCode, Notification, Request, Response};
110112

111113
use super::*;
112114
use lsp_types::{
@@ -120,14 +122,20 @@ mod tests {
120122
#[test]
121123
fn smoke_test() {
122124
let stderr_log = fmt::layer().with_writer(io::stderr).with_filter(LevelFilter::TRACE);
123-
struct TestHandler {}
125+
struct TestHandler {
126+
initialized: AtomicBool,
127+
}
124128
impl Handler for TestHandler {
129+
fn initialized(&self) -> bool {
130+
self.initialized.load(Ordering::SeqCst)
131+
}
125132
fn initialize(&self, _req: InitializeParams) -> Result<InitializeResult, ErrorCode> {
133+
self.initialized.swap(true, Ordering::SeqCst);
126134
Ok(InitializeResult { ..Default::default() })
127135
}
128136
}
129137

130-
let server = Server::new(TestHandler {});
138+
let server = Server::new(TestHandler { initialized: AtomicBool::new(false) });
131139
registry().with(stderr_log).with(server.tracer()).init();
132140
let (sender, receiver) = server.raw_channels();
133141
sender
@@ -158,9 +166,10 @@ mod tests {
158166
Ok(Message::Response(Response::Err(
159167
1.into(),
160168
ErrorCode::MethodNotFound,
161-
"MethodNotFound".into(),
169+
"".into(),
162170
Value::Null
163171
)))
164172
);
173+
sender.send(Message::Notification(Notification { method: "exit".into(), params: Value::Null })).unwrap();
165174
}
166175
}

0 commit comments

Comments
 (0)