Skip to content

Commit 5fc6d0e

Browse files
committed
fix(ipfs): create test context and metrics using dedicated methods
1 parent 7a412ce commit 5fc6d0e

File tree

10 files changed

+70
-72
lines changed

10 files changed

+70
-72
lines changed

core/src/polling_monitor/ipfs_service.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use tower::{buffer::Buffer, ServiceBuilder, ServiceExt};
1111

1212
pub type IpfsService = Buffer<IpfsRequest, BoxFuture<'static, Result<Option<Bytes>, Error>>>;
1313

14-
#[derive(Clone, Debug)]
14+
#[derive(Debug, Clone, CheapClone)]
1515
pub struct IpfsRequest {
1616
pub ctx: IpfsContext,
1717
pub path: ContentPath,
@@ -107,8 +107,7 @@ mod test {
107107
use graph::components::link_resolver::ArweaveResolver;
108108
use graph::data::value::Word;
109109
use graph::ipfs::test_utils::add_files_to_local_ipfs_node_for_testing;
110-
use graph::ipfs::IpfsRpcClient;
111-
use graph::ipfs::ServerAddress;
110+
use graph::ipfs::{IpfsContext, IpfsMetrics, IpfsRpcClient, ServerAddress};
112111
use graph::log::discard;
113112
use graph::tokio;
114113
use tower::ServiceExt;
@@ -136,7 +135,7 @@ mod test {
136135

137136
let client = IpfsRpcClient::new_unchecked(
138137
ServerAddress::local_rpc_api(),
139-
Default::default(),
138+
IpfsMetrics::test(),
140139
&graph::log::discard(),
141140
)
142141
.unwrap();
@@ -146,7 +145,7 @@ mod test {
146145
let path = ContentPath::new(format!("{dir_cid}/file.txt")).unwrap();
147146
let content = svc
148147
.oneshot(IpfsRequest {
149-
ctx: Default::default(),
148+
ctx: IpfsContext::test(),
150149
path,
151150
})
152151
.await
@@ -176,7 +175,7 @@ mod test {
176175

177176
let server = MockServer::start().await;
178177
let ipfs_client =
179-
IpfsRpcClient::new_unchecked(server.uri(), Default::default(), &discard()).unwrap();
178+
IpfsRpcClient::new_unchecked(server.uri(), IpfsMetrics::test(), &discard()).unwrap();
180179
let ipfs_service = ipfs_service(Arc::new(ipfs_client), 10, Duration::from_secs(1), 1);
181180
let path = ContentPath::new(CID).unwrap();
182181

@@ -200,7 +199,7 @@ mod test {
200199
// This means that we never reached the successful response.
201200
ipfs_service
202201
.oneshot(IpfsRequest {
203-
ctx: Default::default(),
202+
ctx: IpfsContext::test(),
204203
path,
205204
})
206205
.await

graph/src/components/link_resolver/ipfs.rs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,7 @@ mod tests {
240240
use super::*;
241241
use crate::env::EnvVars;
242242
use crate::ipfs::test_utils::add_files_to_local_ipfs_node_for_testing;
243-
use crate::ipfs::IpfsRpcClient;
244-
use crate::ipfs::ServerAddress;
243+
use crate::ipfs::{IpfsMetrics, IpfsRpcClient, ServerAddress};
245244

246245
#[tokio::test]
247246
async fn max_file_size() {
@@ -260,15 +259,19 @@ mod tests {
260259

261260
let client = IpfsRpcClient::new_unchecked(
262261
ServerAddress::local_rpc_api(),
263-
Default::default(),
262+
IpfsMetrics::test(),
264263
&logger,
265264
)
266265
.unwrap();
267266
let resolver = IpfsResolver::new(Arc::new(client), Arc::new(env_vars));
268267

269-
let err = IpfsResolver::cat(&resolver, &Default::default(), &Link { link: cid.clone() })
270-
.await
271-
.unwrap_err();
268+
let err = IpfsResolver::cat(
269+
&resolver,
270+
&LinkResolverContext::test(),
271+
&Link { link: cid.clone() },
272+
)
273+
.await
274+
.unwrap_err();
272275

273276
assert_eq!(
274277
err.to_string(),
@@ -284,13 +287,14 @@ mod tests {
284287
let logger = crate::log::discard();
285288
let client = IpfsRpcClient::new_unchecked(
286289
ServerAddress::local_rpc_api(),
287-
Default::default(),
290+
IpfsMetrics::test(),
288291
&logger,
289292
)?;
290293
let resolver = IpfsResolver::new(Arc::new(client), Arc::new(env_vars));
291294

292295
let stream =
293-
IpfsResolver::json_stream(&resolver, &Default::default(), &Link { link: cid }).await?;
296+
IpfsResolver::json_stream(&resolver, &LinkResolverContext::test(), &Link { link: cid })
297+
.await?;
294298
stream.map_ok(|sv| sv.value).try_collect().await
295299
}
296300

graph/src/components/link_resolver/mod.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pub trait LinkResolver: Send + Sync + 'static + Debug {
4242
) -> Result<JsonValueStream, Error>;
4343
}
4444

45-
#[derive(Clone, Debug, CheapClone)]
45+
#[derive(Debug, Clone, CheapClone)]
4646
pub struct LinkResolverContext {
4747
pub deployment_hash: Arc<str>,
4848
pub logger: Logger,
@@ -55,11 +55,9 @@ impl LinkResolverContext {
5555
logger: logger.cheap_clone(),
5656
}
5757
}
58-
}
5958

60-
#[cfg(debug_assertions)]
61-
impl Default for LinkResolverContext {
62-
fn default() -> Self {
59+
#[cfg(debug_assertions)]
60+
pub fn test() -> Self {
6361
Self {
6462
deployment_hash: "test".into(),
6563
logger: crate::log::discard(),

graph/src/ipfs/client.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,9 @@ impl IpfsContext {
171171
slog::o!("deployment" => self.deployment_hash.to_string(), "path" => path.to_string()),
172172
)
173173
}
174-
}
175174

176-
#[cfg(debug_assertions)]
177-
impl Default for IpfsContext {
178-
fn default() -> Self {
175+
#[cfg(debug_assertions)]
176+
pub fn test() -> Self {
179177
Self {
180178
deployment_hash: "test".into(),
181179
logger: crate::log::discard(),

graph/src/ipfs/gateway_client.rs

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ mod tests {
170170
use wiremock::ResponseTemplate;
171171

172172
use super::*;
173-
use crate::ipfs::ContentPath;
173+
use crate::ipfs::{ContentPath, IpfsContext, IpfsMetrics};
174174
use crate::log::discard;
175175

176176
const PATH: &str = "/ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn";
@@ -202,7 +202,8 @@ mod tests {
202202
async fn make_client() -> (MockServer, Arc<IpfsGatewayClient>) {
203203
let server = mock_server().await;
204204
let client =
205-
IpfsGatewayClient::new_unchecked(server.uri(), Default::default(), &discard()).unwrap();
205+
IpfsGatewayClient::new_unchecked(server.uri(), IpfsMetrics::test(), &discard())
206+
.unwrap();
206207

207208
(server, Arc::new(client))
208209
}
@@ -219,7 +220,7 @@ mod tests {
219220
async fn new_fails_to_create_the_client_if_gateway_is_not_accessible() {
220221
let server = mock_server().await;
221222

222-
IpfsGatewayClient::new(server.uri(), Default::default(), &discard())
223+
IpfsGatewayClient::new(server.uri(), IpfsMetrics::test(), &discard())
223224
.await
224225
.unwrap_err();
225226
}
@@ -235,7 +236,7 @@ mod tests {
235236
.mount(&server)
236237
.await;
237238

238-
IpfsGatewayClient::new(server.uri(), Default::default(), &discard())
239+
IpfsGatewayClient::new(server.uri(), IpfsMetrics::test(), &discard())
239240
.await
240241
.unwrap();
241242

@@ -245,7 +246,7 @@ mod tests {
245246
.mount(&server)
246247
.await;
247248

248-
IpfsGatewayClient::new(server.uri(), Default::default(), &discard())
249+
IpfsGatewayClient::new(server.uri(), IpfsMetrics::test(), &discard())
249250
.await
250251
.unwrap();
251252
}
@@ -265,7 +266,7 @@ mod tests {
265266
.mount(&server)
266267
.await;
267268

268-
IpfsGatewayClient::new(server.uri(), Default::default(), &discard())
269+
IpfsGatewayClient::new(server.uri(), IpfsMetrics::test(), &discard())
269270
.await
270271
.unwrap();
271272
}
@@ -274,7 +275,7 @@ mod tests {
274275
async fn new_unchecked_creates_the_client_without_checking_the_gateway() {
275276
let server = mock_server().await;
276277

277-
IpfsGatewayClient::new_unchecked(server.uri(), Default::default(), &discard()).unwrap();
278+
IpfsGatewayClient::new_unchecked(server.uri(), IpfsMetrics::test(), &discard()).unwrap();
278279
}
279280

280281
#[tokio::test]
@@ -288,7 +289,7 @@ mod tests {
288289
.await;
289290

290291
let bytes = client
291-
.cat_stream(&Default::default(), &make_path(), None, RetryPolicy::None)
292+
.cat_stream(&IpfsContext::test(), &make_path(), None, RetryPolicy::None)
292293
.await
293294
.unwrap()
294295
.try_fold(BytesMut::new(), |mut acc, chunk| async {
@@ -314,7 +315,7 @@ mod tests {
314315

315316
let result = client
316317
.cat_stream(
317-
&Default::default(),
318+
&IpfsContext::test(),
318319
&make_path(),
319320
Some(ms(300)),
320321
RetryPolicy::None,
@@ -343,7 +344,7 @@ mod tests {
343344

344345
let _stream = client
345346
.cat_stream(
346-
&Default::default(),
347+
&IpfsContext::test(),
347348
&make_path(),
348349
None,
349350
RetryPolicy::NonDeterministic,
@@ -364,7 +365,7 @@ mod tests {
364365

365366
let bytes = client
366367
.cat(
367-
&Default::default(),
368+
&IpfsContext::test(),
368369
&make_path(),
369370
usize::MAX,
370371
None,
@@ -390,7 +391,7 @@ mod tests {
390391

391392
let bytes = client
392393
.cat(
393-
&Default::default(),
394+
&IpfsContext::test(),
394395
&make_path(),
395396
data.len(),
396397
None,
@@ -416,7 +417,7 @@ mod tests {
416417

417418
client
418419
.cat(
419-
&Default::default(),
420+
&IpfsContext::test(),
420421
&make_path(),
421422
data.len() - 1,
422423
None,
@@ -438,7 +439,7 @@ mod tests {
438439

439440
client
440441
.cat(
441-
&Default::default(),
442+
&IpfsContext::test(),
442443
&make_path(),
443444
usize::MAX,
444445
Some(ms(300)),
@@ -467,7 +468,7 @@ mod tests {
467468

468469
let bytes = client
469470
.cat(
470-
&Default::default(),
471+
&IpfsContext::test(),
471472
&make_path(),
472473
usize::MAX,
473474
None,
@@ -490,7 +491,7 @@ mod tests {
490491
.await;
491492

492493
let bytes = client
493-
.get_block(&Default::default(), &make_path(), None, RetryPolicy::None)
494+
.get_block(&IpfsContext::test(), &make_path(), None, RetryPolicy::None)
494495
.await
495496
.unwrap();
496497

@@ -509,7 +510,7 @@ mod tests {
509510

510511
client
511512
.get_block(
512-
&Default::default(),
513+
&IpfsContext::test(),
513514
&make_path(),
514515
Some(ms(300)),
515516
RetryPolicy::None,
@@ -537,7 +538,7 @@ mod tests {
537538

538539
let bytes = client
539540
.get_block(
540-
&Default::default(),
541+
&IpfsContext::test(),
541542
&make_path(),
542543
None,
543544
RetryPolicy::NonDeterministic,

graph/src/ipfs/metrics.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,9 @@ impl IpfsMetrics {
9292
.with_label_values(&[deployment_hash])
9393
.observe(duration_secs.clamp(0.2, 240.0));
9494
}
95-
}
9695

97-
#[cfg(debug_assertions)]
98-
impl Default for IpfsMetrics {
99-
fn default() -> Self {
96+
#[cfg(debug_assertions)]
97+
pub fn test() -> Self {
10098
Self::new(&MetricsRegistry::mock())
10199
}
102100
}

graph/src/ipfs/pool.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ mod tests {
7575
use wiremock::ResponseTemplate;
7676

7777
use super::*;
78-
use crate::ipfs::{ContentPath, IpfsGatewayClient, RetryPolicy};
78+
use crate::ipfs::{ContentPath, IpfsContext, IpfsGatewayClient, IpfsMetrics, RetryPolicy};
7979
use crate::log::discard;
8080

8181
const PATH: &str = "/ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn";
@@ -87,7 +87,8 @@ mod tests {
8787
async fn make_client() -> (MockServer, Arc<IpfsGatewayClient>) {
8888
let server = MockServer::start().await;
8989
let client =
90-
IpfsGatewayClient::new_unchecked(server.uri(), Default::default(), &discard()).unwrap();
90+
IpfsGatewayClient::new_unchecked(server.uri(), IpfsMetrics::test(), &discard())
91+
.unwrap();
9192

9293
(server, Arc::new(client))
9394
}
@@ -140,7 +141,7 @@ mod tests {
140141
let pool = Arc::new(IpfsClientPool::new(clients));
141142

142143
let bytes = pool
143-
.cat_stream(&Default::default(), &make_path(), None, RetryPolicy::None)
144+
.cat_stream(&IpfsContext::test(), &make_path(), None, RetryPolicy::None)
144145
.await
145146
.unwrap()
146147
.try_fold(BytesMut::new(), |mut acc, chunk| async {
@@ -194,7 +195,7 @@ mod tests {
194195

195196
let bytes = pool
196197
.cat(
197-
&Default::default(),
198+
&IpfsContext::test(),
198199
&make_path(),
199200
usize::MAX,
200201
None,
@@ -246,7 +247,7 @@ mod tests {
246247
let pool = Arc::new(IpfsClientPool::new(clients));
247248

248249
let bytes = pool
249-
.get_block(&Default::default(), &make_path(), None, RetryPolicy::None)
250+
.get_block(&IpfsContext::test(), &make_path(), None, RetryPolicy::None)
250251
.await
251252
.unwrap();
252253

0 commit comments

Comments
 (0)