From 75a0a3f6fd17bc0d54aa7613ff8a1183c508e30b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Wed, 20 Nov 2019 09:51:09 +0100 Subject: [PATCH] Fix `forks_should_work_correctly` test (#4152) When we enabled arbitary precision for `serde_json`, the feature leaked through the whole workspace. The given test fails because of some bug in serde json when the feature is enabled. --- substrate/client/chain-spec/Cargo.toml | 2 +- substrate/client/chain-spec/src/extension.rs | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/substrate/client/chain-spec/Cargo.toml b/substrate/client/chain-spec/Cargo.toml index da9543e398..e352ef01a0 100644 --- a/substrate/client/chain-spec/Cargo.toml +++ b/substrate/client/chain-spec/Cargo.toml @@ -10,6 +10,6 @@ impl-trait-for-tuples = "0.1.3" network = { package = "substrate-network", path = "../network" } primitives = { package = "substrate-primitives", path = "../../primitives/core" } serde = { version = "1.0.101", features = ["derive"] } -serde_json = "1.0.41" +serde_json = { version = "1.0.41", features = [ "arbitrary_precision" ] } sr-primitives = { path = "../../primitives/sr-primitives" } tel = { package = "substrate-telemetry", path = "../telemetry" } diff --git a/substrate/client/chain-spec/src/extension.rs b/substrate/client/chain-spec/src/extension.rs index e5110a77d5..6b99928160 100644 --- a/substrate/client/chain-spec/src/extension.rs +++ b/substrate/client/chain-spec/src/extension.rs @@ -289,7 +289,9 @@ mod tests { fn forks_should_work_correctly() { use super::Extension as _ ; - let ext: Ext2 = serde_json::from_str(r#" + // We first need to deserialize into a `Value` because of the following bug: + // https://github.com/serde-rs/json/issues/505 + let ext_val: serde_json::Value = serde_json::from_str(r#" { "test": 11, "forkable": { @@ -314,6 +316,8 @@ mod tests { } "#).unwrap(); + let ext: Ext2 = serde_json::from_value(ext_val).unwrap(); + assert_eq!(ext.get::(), Some(&Extension1 { test: 11 }));