Skip to content

Commit 9f6b8aa

Browse files
committed
wip
1 parent 31203f3 commit 9f6b8aa

File tree

3 files changed

+162
-145
lines changed

3 files changed

+162
-145
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
#![allow(clippy::unwrap_used)]
2+
3+
use std::sync::LazyLock;
4+
5+
use catalyst_signed_doc::*;
6+
7+
pub static BRAND_PARAMETERS_DOC: LazyLock<CatalystSignedDocument> = LazyLock::new(|| {
8+
Builder::new()
9+
.with_json_metadata(serde_json::json!({
10+
"content-type": ContentType::Json.to_string(),
11+
"id": UuidV7::new(),
12+
"ver": UuidV7::new(),
13+
"type": doc_types::BRAND_PARAMETERS.clone(),
14+
}))
15+
.unwrap()
16+
.empty_content()
17+
.unwrap()
18+
.build()
19+
.unwrap()
20+
});
21+
22+
pub static CAMPAIGN_PARAMETERS_DOC: LazyLock<CatalystSignedDocument> = LazyLock::new(|| {
23+
Builder::new()
24+
.with_json_metadata(serde_json::json!({
25+
"content-type": ContentType::Json.to_string(),
26+
"id": UuidV7::new(),
27+
"ver": UuidV7::new(),
28+
"type": doc_types::CAMPAIGN_PARAMETERS.clone(),
29+
}))
30+
.unwrap()
31+
.empty_content()
32+
.unwrap()
33+
.build()
34+
.unwrap()
35+
});
36+
37+
pub static CATEGORY_PARAMETERS_DOC: LazyLock<CatalystSignedDocument> = LazyLock::new(|| {
38+
Builder::new()
39+
.with_json_metadata(serde_json::json!({
40+
"content-type": ContentType::Json.to_string(),
41+
"id": UuidV7::new(),
42+
"ver": UuidV7::new(),
43+
"type": doc_types::CATEGORY_PARAMETERS.clone(),
44+
}))
45+
.unwrap()
46+
.empty_content()
47+
.unwrap()
48+
.build()
49+
.unwrap()
50+
});
51+
52+
pub static PROPOSAL_TEMPLATE_FOR_BRAND_DOC: LazyLock<CatalystSignedDocument> =
53+
LazyLock::new(|| {
54+
Builder::new()
55+
.with_json_metadata(serde_json::json!({
56+
"content-type": ContentType::Json.to_string(),
57+
"content-encoding": ContentEncoding::Brotli.to_string(),
58+
"type": doc_types::PROPOSAL_FORM_TEMPLATE.clone(),
59+
"id": UuidV7::new(),
60+
"ver": UuidV7::new(),
61+
"parameters": {
62+
"id": BRAND_PARAMETERS_DOC.doc_id().unwrap(),
63+
"ver": BRAND_PARAMETERS_DOC.doc_ver().unwrap(),
64+
},
65+
}))
66+
.unwrap()
67+
.with_json_content(&serde_json::json!({
68+
"$schema": "http://json-schema.org/draft-07/schema#",
69+
"type": "object",
70+
"properties": {},
71+
"required": [],
72+
"additionalProperties": false
73+
}))
74+
.unwrap()
75+
.build()
76+
.unwrap()
77+
});
78+
79+
pub static PROPOSAL_TEMPLATE_FOR_CAMPAIGN_DOC: LazyLock<CatalystSignedDocument> =
80+
LazyLock::new(|| {
81+
Builder::new()
82+
.with_json_metadata(serde_json::json!({
83+
"content-type": ContentType::Json.to_string(),
84+
"content-encoding": ContentEncoding::Brotli.to_string(),
85+
"type": doc_types::PROPOSAL_FORM_TEMPLATE.clone(),
86+
"id": UuidV7::new(),
87+
"ver": UuidV7::new(),
88+
"parameters": {
89+
"id": CAMPAIGN_PARAMETERS_DOC.doc_id().unwrap(),
90+
"ver": CAMPAIGN_PARAMETERS_DOC.doc_ver().unwrap(),
91+
},
92+
}))
93+
.unwrap()
94+
.with_json_content(&serde_json::json!({
95+
"$schema": "http://json-schema.org/draft-07/schema#",
96+
"type": "object",
97+
"properties": {},
98+
"required": [],
99+
"additionalProperties": false
100+
}))
101+
.unwrap()
102+
.build()
103+
.unwrap()
104+
});
105+
106+
pub static PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC: LazyLock<CatalystSignedDocument> =
107+
LazyLock::new(|| {
108+
Builder::new()
109+
.with_json_metadata(serde_json::json!({
110+
"content-type": ContentType::Json.to_string(),
111+
"content-encoding": ContentEncoding::Brotli.to_string(),
112+
"type": doc_types::PROPOSAL_FORM_TEMPLATE.clone(),
113+
"id": UuidV7::new(),
114+
"ver": UuidV7::new(),
115+
"parameters": {
116+
"id": CATEGORY_PARAMETERS_DOC.doc_id().unwrap(),
117+
"ver": CATEGORY_PARAMETERS_DOC.doc_ver().unwrap(),
118+
},
119+
}))
120+
.unwrap()
121+
.with_json_content(&serde_json::json!({
122+
"$schema": "http://json-schema.org/draft-07/schema#",
123+
"type": "object",
124+
"properties": {},
125+
"required": [],
126+
"additionalProperties": false
127+
}))
128+
.unwrap()
129+
.build()
130+
.unwrap()
131+
});

rust/signed_doc/tests/common/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#![allow(dead_code)]
22

3+
pub mod dummies;
4+
35
use std::str::FromStr;
46

57
use catalyst_signed_doc::*;

rust/signed_doc/tests/proposal.rs

Lines changed: 29 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -2,142 +2,22 @@
22
//! Require fields: type, id, ver, template, parameters
33
//! <https://input-output-hk.github.io/catalyst-libs/architecture/08_concepts/signed_doc/docs/proposal>
44
5-
use std::sync::LazyLock;
6-
75
use catalyst_signed_doc::{providers::tests::TestCatalystProvider, *};
86
use catalyst_types::catalyst_id::role_index::RoleId;
97
use ed25519_dalek::ed25519::signature::Signer;
108
use test_case::test_case;
119

12-
use crate::common::create_dummy_key_pair;
10+
use crate::common::{
11+
create_dummy_key_pair,
12+
dummies::{
13+
BRAND_PARAMETERS_DOC, CAMPAIGN_PARAMETERS_DOC, CATEGORY_PARAMETERS_DOC,
14+
PROPOSAL_TEMPLATE_FOR_BRAND_DOC, PROPOSAL_TEMPLATE_FOR_CAMPAIGN_DOC,
15+
PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC,
16+
},
17+
};
1318

1419
mod common;
1520

16-
#[allow(clippy::unwrap_used)]
17-
static DUMMY_BRAND_DOC: LazyLock<CatalystSignedDocument> = LazyLock::new(|| {
18-
Builder::new()
19-
.with_json_metadata(serde_json::json!({
20-
"content-type": ContentType::Json.to_string(),
21-
"id": UuidV7::new(),
22-
"ver": UuidV7::new(),
23-
"type": doc_types::BRAND_PARAMETERS.clone(),
24-
}))
25-
.unwrap()
26-
.empty_content()
27-
.unwrap()
28-
.build()
29-
.unwrap()
30-
});
31-
32-
static DUMMY_CAMPAIGN_DOC: LazyLock<CatalystSignedDocument> = LazyLock::new(|| {
33-
Builder::new()
34-
.with_json_metadata(serde_json::json!({
35-
"content-type": ContentType::Json.to_string(),
36-
"id": UuidV7::new(),
37-
"ver": UuidV7::new(),
38-
"type": doc_types::CAMPAIGN_PARAMETERS.clone(),
39-
}))
40-
.unwrap()
41-
.empty_content()
42-
.unwrap()
43-
.build()
44-
.unwrap()
45-
});
46-
47-
static DUMMY_CATEGORY_DOC: LazyLock<CatalystSignedDocument> = LazyLock::new(|| {
48-
Builder::new()
49-
.with_json_metadata(serde_json::json!({
50-
"content-type": ContentType::Json.to_string(),
51-
"id": UuidV7::new(),
52-
"ver": UuidV7::new(),
53-
"type": doc_types::CATEGORY_PARAMETERS.clone(),
54-
}))
55-
.unwrap()
56-
.empty_content()
57-
.unwrap()
58-
.build()
59-
.unwrap()
60-
});
61-
62-
#[allow(clippy::unwrap_used)]
63-
static PROPOSAL_TEMPLATE_FOR_BRAND_DOC: LazyLock<CatalystSignedDocument> = LazyLock::new(|| {
64-
Builder::new()
65-
.with_json_metadata(serde_json::json!({
66-
"content-type": ContentType::Json.to_string(),
67-
"content-encoding": ContentEncoding::Brotli.to_string(),
68-
"type": doc_types::PROPOSAL_FORM_TEMPLATE.clone(),
69-
"id": UuidV7::new(),
70-
"ver": UuidV7::new(),
71-
"parameters": {
72-
"id": DUMMY_BRAND_DOC.doc_id().unwrap(),
73-
"ver": DUMMY_BRAND_DOC.doc_ver().unwrap(),
74-
},
75-
}))
76-
.unwrap()
77-
.with_json_content(&serde_json::json!({
78-
"$schema": "http://json-schema.org/draft-07/schema#",
79-
"type": "object",
80-
"properties": {},
81-
"required": [],
82-
"additionalProperties": false
83-
}))
84-
.unwrap()
85-
.build()
86-
.unwrap()
87-
});
88-
89-
static PROPOSAL_TEMPLATE_FOR_CAMPAIGN_DOC: LazyLock<CatalystSignedDocument> = LazyLock::new(|| {
90-
Builder::new()
91-
.with_json_metadata(serde_json::json!({
92-
"content-type": ContentType::Json.to_string(),
93-
"content-encoding": ContentEncoding::Brotli.to_string(),
94-
"type": doc_types::PROPOSAL_FORM_TEMPLATE.clone(),
95-
"id": UuidV7::new(),
96-
"ver": UuidV7::new(),
97-
"parameters": {
98-
"id": DUMMY_CAMPAIGN_DOC.doc_id().unwrap(),
99-
"ver": DUMMY_CAMPAIGN_DOC.doc_ver().unwrap(),
100-
},
101-
}))
102-
.unwrap()
103-
.with_json_content(&serde_json::json!({
104-
"$schema": "http://json-schema.org/draft-07/schema#",
105-
"type": "object",
106-
"properties": {},
107-
"required": [],
108-
"additionalProperties": false
109-
}))
110-
.unwrap()
111-
.build()
112-
.unwrap()
113-
});
114-
115-
static PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC: LazyLock<CatalystSignedDocument> = LazyLock::new(|| {
116-
Builder::new()
117-
.with_json_metadata(serde_json::json!({
118-
"content-type": ContentType::Json.to_string(),
119-
"content-encoding": ContentEncoding::Brotli.to_string(),
120-
"type": doc_types::PROPOSAL_FORM_TEMPLATE.clone(),
121-
"id": UuidV7::new(),
122-
"ver": UuidV7::new(),
123-
"parameters": {
124-
"id": DUMMY_CATEGORY_DOC.doc_id().unwrap(),
125-
"ver": DUMMY_CATEGORY_DOC.doc_ver().unwrap(),
126-
},
127-
}))
128-
.unwrap()
129-
.with_json_content(&serde_json::json!({
130-
"$schema": "http://json-schema.org/draft-07/schema#",
131-
"type": "object",
132-
"properties": {},
133-
"required": [],
134-
"additionalProperties": false
135-
}))
136-
.unwrap()
137-
.build()
138-
.unwrap()
139-
});
140-
14121
#[test_case(
14222
|provider| {
14323
let id = UuidV7::new();
@@ -157,8 +37,8 @@ static PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC: LazyLock<CatalystSignedDocument> = La
15737
"ver": PROPOSAL_TEMPLATE_FOR_BRAND_DOC.doc_ver()?,
15838
},
15939
"parameters": {
160-
"id": DUMMY_BRAND_DOC.doc_id()?,
161-
"ver": DUMMY_BRAND_DOC.doc_ver()?,
40+
"id": BRAND_PARAMETERS_DOC.doc_id()?,
41+
"ver": BRAND_PARAMETERS_DOC.doc_ver()?,
16242
}
16343
}))?
16444
.with_json_content(&serde_json::json!({}))?
@@ -189,8 +69,8 @@ static PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC: LazyLock<CatalystSignedDocument> = La
18969
"ver": PROPOSAL_TEMPLATE_FOR_CAMPAIGN_DOC.doc_ver()?,
19070
},
19171
"parameters": {
192-
"id": DUMMY_CAMPAIGN_DOC.doc_id()?,
193-
"ver": DUMMY_CAMPAIGN_DOC.doc_ver()?,
72+
"id": CAMPAIGN_PARAMETERS_DOC.doc_id()?,
73+
"ver": CAMPAIGN_PARAMETERS_DOC.doc_ver()?,
19474
}
19575
}))?
19676
.with_json_content(&serde_json::json!({}))?
@@ -221,8 +101,8 @@ static PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC: LazyLock<CatalystSignedDocument> = La
221101
"ver": PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC.doc_ver()?,
222102
},
223103
"parameters": {
224-
"id": DUMMY_CATEGORY_DOC.doc_id()?,
225-
"ver": DUMMY_CATEGORY_DOC.doc_ver()?,
104+
"id": CATEGORY_PARAMETERS_DOC.doc_id()?,
105+
"ver": CATEGORY_PARAMETERS_DOC.doc_ver()?,
226106
}
227107
}))?
228108
.with_json_content(&serde_json::json!({}))?
@@ -251,8 +131,8 @@ static PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC: LazyLock<CatalystSignedDocument> = La
251131
"ver": PROPOSAL_TEMPLATE_FOR_BRAND_DOC.doc_ver()?,
252132
},
253133
"parameters": {
254-
"id": DUMMY_BRAND_DOC.doc_id()?,
255-
"ver": DUMMY_BRAND_DOC.doc_ver()?,
134+
"id": BRAND_PARAMETERS_DOC.doc_id()?,
135+
"ver": BRAND_PARAMETERS_DOC.doc_ver()?,
256136
}
257137
}))?
258138
.with_json_content(&serde_json::json!({}))?
@@ -281,8 +161,8 @@ static PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC: LazyLock<CatalystSignedDocument> = La
281161
"ver": PROPOSAL_TEMPLATE_FOR_BRAND_DOC.doc_ver()?,
282162
},
283163
"parameters": {
284-
"id": DUMMY_BRAND_DOC.doc_id()?,
285-
"ver": DUMMY_BRAND_DOC.doc_ver()?,
164+
"id": BRAND_PARAMETERS_DOC.doc_id()?,
165+
"ver": BRAND_PARAMETERS_DOC.doc_ver()?,
286166
}
287167
}))?
288168
.empty_content()?
@@ -310,8 +190,8 @@ static PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC: LazyLock<CatalystSignedDocument> = La
310190
"ver": PROPOSAL_TEMPLATE_FOR_BRAND_DOC.doc_ver()?,
311191
},
312192
"parameters": {
313-
"id": DUMMY_BRAND_DOC.doc_id()?,
314-
"ver": DUMMY_BRAND_DOC.doc_ver()?,
193+
"id": BRAND_PARAMETERS_DOC.doc_id()?,
194+
"ver": BRAND_PARAMETERS_DOC.doc_ver()?,
315195
}
316196
}))?
317197
.with_json_content(&serde_json::json!({}))?
@@ -336,8 +216,8 @@ static PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC: LazyLock<CatalystSignedDocument> = La
336216
"id": id,
337217
"ver": id,
338218
"parameters": {
339-
"id": DUMMY_BRAND_DOC.doc_id()?,
340-
"ver": DUMMY_BRAND_DOC.doc_ver()?,
219+
"id": BRAND_PARAMETERS_DOC.doc_id()?,
220+
"ver": BRAND_PARAMETERS_DOC.doc_ver()?,
341221
}
342222
}))?
343223
.with_json_content(&serde_json::json!({}))?
@@ -392,9 +272,13 @@ async fn test_proposal_doc(
392272
provider
393273
.add_document(None, &PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC)
394274
.unwrap();
395-
provider.add_document(None, &DUMMY_BRAND_DOC).unwrap();
396-
provider.add_document(None, &DUMMY_CAMPAIGN_DOC).unwrap();
397-
provider.add_document(None, &DUMMY_CATEGORY_DOC).unwrap();
275+
provider.add_document(None, &BRAND_PARAMETERS_DOC).unwrap();
276+
provider
277+
.add_document(None, &CAMPAIGN_PARAMETERS_DOC)
278+
.unwrap();
279+
provider
280+
.add_document(None, &CATEGORY_PARAMETERS_DOC)
281+
.unwrap();
398282

399283
let is_valid = validator::validate(&doc, &provider).await.unwrap();
400284
assert_eq!(is_valid, !doc.problem_report().is_problematic());

0 commit comments

Comments
 (0)