MCPcopy Create free account
hub / github.com/csskit/csskit / smoke_test

Function smoke_test

crates/csskit_lsp/src/server.rs:145–191  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

143
144 #[test]
145 fn smoke_test() {
146 let stderr_log = fmt::layer().with_writer(io::stderr).with_filter(LevelFilter::TRACE);
147 struct TestHandler {
148 initialized: AtomicBool,
149 }
150 impl Handler for TestHandler {
151 fn initialized(&self) -> bool {
152 self.initialized.load(Ordering::SeqCst)
153 }
154 fn initialize(&self, _req: InitializeParams) -> Result<InitializeResult, ErrorCode> {
155 self.initialized.swap(true, Ordering::SeqCst);
156 Ok(InitializeResult { ..Default::default() })
157 }
158 }
159
160 let server = Server::new(TestHandler { initialized: AtomicBool::new(false) });
161 registry().with(stderr_log).with(server.tracer()).init();
162 let (sender, receiver) = server.raw_channels();
163 sender
164 .send(Message::Request(Request {
165 id: 1.into(),
166 method: Initialize::METHOD.into(),
167 params: to_value(InitializeParams { ..Default::default() }).unwrap(),
168 }))
169 .unwrap();
170 assert_eq!(receiver.recv(), Ok(Message::Response(Response::Ok(1.into(), json!({"capabilities": {}})))));
171 sender
172 .send(Message::Request(Request {
173 id: 1.into(),
174 method: GotoDeclaration::METHOD.into(),
175 params: json!({
176 "textDocument": {
177 "uri": "foo/bar",
178 },
179 "position": {
180 "line": 1,
181 "character": 1
182 }
183 }),
184 }))
185 .unwrap();
186 assert_eq!(
187 receiver.recv(),
188 Ok(Message::Response(Response::Err(1.into(), ErrorCode::MethodNotFound, "".into(), Value::Null)))
189 );
190 sender.send(Message::Notification(Notification { method: "exit".into(), params: Value::Null })).unwrap();
191 }
192}

Callers

nothing calls this directly

Calls 4

RequestClass · 0.85
NotificationClass · 0.85
tracerMethod · 0.80
raw_channelsMethod · 0.80

Tested by

no test coverage detected