From e80b0ccdc2ae40b98a9c43acd46729f38def0255 Mon Sep 17 00:00:00 2001 From: Christian Legnitto Date: Tue, 26 Feb 2019 10:00:03 -0700 Subject: [PATCH] Fix headless test runner on macOS High Sierra --- .../src/bin/wasm-bindgen-test-runner/headless.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/crates/cli/src/bin/wasm-bindgen-test-runner/headless.rs b/crates/cli/src/bin/wasm-bindgen-test-runner/headless.rs index ad6cc3a7..fc695fbe 100644 --- a/crates/cli/src/bin/wasm-bindgen-test-runner/headless.rs +++ b/crates/cli/src/bin/wasm-bindgen-test-runner/headless.rs @@ -281,18 +281,20 @@ impl Client { Ok(x.value.session_id) } Driver::Safari(_) => { - #[derive(Deserialize)] + #[derive(Clone, Deserialize)] struct Response { - // returned by `--legacy` + // returned by `--legacy` or by default on High Sierra and lower. #[serde(rename = "sessionId")] session_id: Option, // returned by the now-default `--w3c` mode value: Option, } - #[derive(Deserialize)] + #[derive(Clone, Deserialize)] struct Value { + // This needs to be optional because both `--legacy` and High Sierra do not + // include a session id in the value entry. #[serde(rename = "sessionId")] - session_id: String, + session_id: Option, } let request = json!({ // this is needed for the now `--legacy` mode @@ -303,7 +305,10 @@ impl Client { } }); let x: Response = self.post("/session", &request)?; - Ok(x.session_id.or(x.value.map(|v| v.session_id)).unwrap()) + Ok(x.clone() + .session_id + .or_else(|| x.value.map(|v| v.session_id.unwrap())) + .unwrap()) } Driver::Chrome(_) => { #[derive(Deserialize)]