Skip to content

Commit 34e87ce

Browse files
committed
Add test for same name in different modules
1 parent b960a0d commit 34e87ce

File tree

3 files changed

+76
-1
lines changed

3 files changed

+76
-1
lines changed

packages/cw-schema/src/default_impls.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ macro_rules! impl_integer {
5959
};
6060
}
6161

62-
impl_integer!(u8, i8, u16, i16, u32, i32, u64, i64, u128, i128);
62+
impl_integer!(u8, i8, u16, i16, u32, i32, u64, i64, u128, i128, usize, isize);
6363

6464
impl Schemaifier for f32 {
6565
fn visit_schema(visitor: &mut crate::SchemaVisitor) -> crate::DefinitionReference {

packages/cw-schema/tests/same_name.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
mod module1 {
2+
#[derive(cw_schema::Schemaifier)]
3+
pub struct Test {
4+
foo: usize,
5+
}
6+
}
7+
8+
mod module2 {
9+
#[derive(cw_schema::Schemaifier)]
10+
pub struct Test {
11+
bar: f32,
12+
}
13+
}
14+
15+
#[derive(cw_schema::Schemaifier)]
16+
struct Combined {
17+
module1: module1::Test,
18+
module2: module2::Test,
19+
}
20+
21+
#[test]
22+
fn can_handle_same_name_in_different_modules() {
23+
let schema = cw_schema::schema_of::<Combined>();
24+
insta::assert_json_snapshot!(schema);
25+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
source: packages/cw-schema/tests/same_name.rs
3+
expression: schema
4+
---
5+
{
6+
"type": "v1",
7+
"root": 4,
8+
"definitions": [
9+
{
10+
"name": "usize",
11+
"type": "integer",
12+
"precision": 64,
13+
"signed": false
14+
},
15+
{
16+
"name": "Test",
17+
"type": "struct",
18+
"properties": {
19+
"foo": {
20+
"value": 0
21+
}
22+
}
23+
},
24+
{
25+
"name": "f32",
26+
"type": "float"
27+
},
28+
{
29+
"name": "Test",
30+
"type": "struct",
31+
"properties": {
32+
"bar": {
33+
"value": 2
34+
}
35+
}
36+
},
37+
{
38+
"name": "Combined",
39+
"type": "struct",
40+
"properties": {
41+
"module1": {
42+
"value": 1
43+
},
44+
"module2": {
45+
"value": 3
46+
}
47+
}
48+
}
49+
]
50+
}

0 commit comments

Comments
 (0)