MCPcopy Create free account
hub / github.com/ceramicnetwork/rust-ceramic / create_event

Function create_event

api/src/tests.rs:206–252  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

204
205#[test(tokio::test)]
206async fn create_event() {
207 let node_id = NodeKey::random().id();
208 let network = Network::Mainnet;
209 let expected_event_id = EventId::try_from(hex::decode(DATA_EVENT_ID).unwrap()).unwrap();
210
211 // Remove whitespace from event CAR file
212 let event_data = DATA_EVENT_CAR
213 .chars()
214 .filter(|c| !c.is_whitespace())
215 .collect::<String>();
216 let mock_interest = MockAccessInterestStoreTest::new();
217 let mut mock_event_store = MockEventStoreTest::new();
218 mock_get_init_event(&mut mock_event_store);
219 let args = vec![ApiItem::new(
220 expected_event_id,
221 decode_multibase_data(&event_data).unwrap(),
222 )];
223
224 mock_event_store
225 .expect_insert_many()
226 .with(predicate::eq(args), predicate::eq(node_id))
227 .times(1)
228 .returning(|input, _| {
229 Ok(input
230 .into_iter()
231 .map(|v| EventInsertResult::new_ok(v.key.clone()))
232 .collect())
233 });
234 let server = create_test_server(
235 node_id,
236 network,
237 mock_interest,
238 Arc::new(mock_event_store),
239 MockP2PService::new(),
240 None,
241 );
242 let resp = server
243 .events_post(
244 models::EventData {
245 data: event_data.to_string(),
246 },
247 &Context,
248 )
249 .await
250 .unwrap();
251 assert!(matches!(resp, EventsPostResponse::Success));
252}
253
254#[test(tokio::test)]
255async fn create_event_twice() {

Callers

nothing calls this directly

Calls 10

newFunction · 0.85
mock_get_init_eventFunction · 0.85
create_test_serverFunction · 0.85
unwrapMethod · 0.80
mapMethod · 0.80
into_iterMethod · 0.80
idMethod · 0.45
cloneMethod · 0.45
events_postMethod · 0.45
to_stringMethod · 0.45

Tested by

no test coverage detected