Try clearing Client's state at the ends of integration tests

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
This commit is contained in:
Max Brunsfeld 2022-02-28 22:52:08 -08:00
parent 02ae2d8a4f
commit 3b7cfad718
2 changed files with 15 additions and 0 deletions

View File

@ -228,6 +228,15 @@ impl Client {
self.http.clone()
}
#[cfg(any(test, feature = "test-support"))]
pub fn tear_down(&self) {
let mut state = self.state.write();
state.message_handlers.clear();
state.models_by_message_type.clear();
state.models_by_entity_type_and_remote_id.clear();
state.entity_id_extractors.clear();
}
#[cfg(any(test, feature = "test-support"))]
pub fn override_authenticate<F>(&mut self, authenticate: F) -> &mut Self
where

View File

@ -5052,6 +5052,12 @@ mod tests {
}
}
impl Drop for TestClient {
fn drop(&mut self) {
self.client.tear_down();
}
}
impl Executor for Arc<gpui::executor::Background> {
fn spawn_detached<F: 'static + Send + Future<Output = ()>>(&self, future: F) {
self.spawn(future).detach();