Skip to content

Commit 2b49f81

Browse files
fix: use cfg-if for conditional feature in unit test
1 parent 31684ba commit 2b49f81

3 files changed

Lines changed: 71 additions & 60 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/fortifier/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ utoipa = { workspace = true, optional = true }
4848
uuid = { workspace = true, optional = true }
4949

5050
[dev-dependencies]
51+
cfg-if = "1.0.4"
5152
pretty_assertions.workspace = true
5253
rust_decimal = { workspace = true, features = ["macros"] }
5354
serde_json.workspace = true

packages/fortifier/tests/serde.rs

Lines changed: 69 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#![cfg(feature = "serde")]
22

3+
use cfg_if::cfg_if;
34
use fortifier::{
45
EmailAddressError, LengthError, LengthErrorCode, RegexError, UrlError, ValidationErrors,
56
};
@@ -18,66 +19,74 @@ enum TestError {
1819
}
1920

2021
fn setup() -> (ValidationErrors<TestError>, Value) {
21-
(
22-
ValidationErrors::from_iter([
23-
TestError::EmailAddress(EmailAddressError::from(
24-
email_address::Error::MissingSeparator,
25-
)),
26-
TestError::Length(LengthError::Equal {
27-
equal: 1,
28-
value: 2,
29-
code: LengthErrorCode,
30-
#[cfg(feature = "message")]
31-
message: "length 2 is not equal to required length 1".to_owned(),
32-
}),
33-
TestError::Regex(RegexError::default()),
34-
TestError::Url(UrlError::from(ParseError::EmptyHost)),
35-
]),
36-
#[cfg(not(feature = "message"))]
37-
json!([
38-
{
39-
"code": "emailAddress",
40-
"subcode": "missingSeparator",
41-
},
42-
{
43-
"code": "length",
44-
"subcode": "equal",
45-
"equal": 1,
46-
"value": 2,
47-
},
48-
{
49-
"code": "regex",
50-
},
51-
{
52-
"code": "url",
53-
"subcode": "emptyHost",
54-
}
55-
]),
56-
#[cfg(feature = "message")]
57-
json!([
58-
{
59-
"code": "emailAddress",
60-
"subcode": "missingSeparator",
61-
"message": "",
62-
},
63-
{
64-
"code": "length",
65-
"subcode": "equal",
66-
"equal": 1,
67-
"value": 2,
68-
"message": "length 2 is not equal to required length 1",
69-
},
70-
{
71-
"code": "regex",
72-
"message": "value does not match regular expression",
73-
},
74-
{
75-
"code": "url",
76-
"subcode": "emptyHost",
77-
"message": "empty host",
78-
}
79-
]),
80-
)
22+
let errors = ValidationErrors::from_iter([
23+
TestError::EmailAddress(EmailAddressError::from(
24+
email_address::Error::MissingSeparator,
25+
)),
26+
TestError::Length(LengthError::Equal {
27+
equal: 1,
28+
value: 2,
29+
code: LengthErrorCode,
30+
#[cfg(feature = "message")]
31+
message: "length 2 is not equal to required length 1".to_owned(),
32+
}),
33+
TestError::Regex(RegexError::default()),
34+
TestError::Url(UrlError::from(ParseError::EmptyHost)),
35+
]);
36+
37+
cfg_if! {
38+
if #[cfg(feature = "message")] {
39+
(
40+
errors,
41+
json!([
42+
{
43+
"code": "emailAddress",
44+
"subcode": "missingSeparator",
45+
"message": "",
46+
},
47+
{
48+
"code": "length",
49+
"subcode": "equal",
50+
"equal": 1,
51+
"value": 2,
52+
"message": "length 2 is not equal to required length 1",
53+
},
54+
{
55+
"code": "regex",
56+
"message": "value does not match regular expression",
57+
},
58+
{
59+
"code": "url",
60+
"subcode": "emptyHost",
61+
"message": "empty host",
62+
}
63+
]),
64+
)
65+
} else {
66+
(
67+
errors,
68+
json!([
69+
{
70+
"code": "emailAddress",
71+
"subcode": "missingSeparator",
72+
},
73+
{
74+
"code": "length",
75+
"subcode": "equal",
76+
"equal": 1,
77+
"value": 2,
78+
},
79+
{
80+
"code": "regex",
81+
},
82+
{
83+
"code": "url",
84+
"subcode": "emptyHost",
85+
}
86+
]),
87+
)
88+
}
89+
}
8190
}
8291

8392
#[test]

0 commit comments

Comments
 (0)