Skip to content

Commit 48ee09f

Browse files
test: propagate errors to users
1 parent a1fadb0 commit 48ee09f

File tree

2 files changed

+48
-4
lines changed

2 files changed

+48
-4
lines changed

.github/workflows/cont_integration.yml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
matrix:
1818
rust:
19-
- version: 1.65.0 # STABLE
19+
- version: stable # STABLE
2020
clippy: true
2121
- version: 1.57.0 # MSRV
2222
features:
@@ -51,11 +51,20 @@ jobs:
5151
- name: pin dependencies
5252
if: matrix.rust.version == '1.57.0'
5353
run: |
54-
cargo update -p log --precise 0.4.18
54+
cargo update -p tokio --precise 1.29.1
55+
cargo update -p reqwest --precise 0.11.18
56+
cargo update -p rustls:0.20.9 --precise 0.20.8
57+
cargo update -p rustix --precise 0.38.6
5558
cargo update -p rustls:0.21.7 --precise 0.21.1
56-
cargo update -p time:0.3.15 --precise 0.3.13
5759
cargo update -p hyper-rustls:0.24.1 --precise 0.24.0
58-
cargo update -p tempfile:3.7.0 --precise 3.6.0
60+
cargo update -p rustls-webpki:0.100.3 --precise 0.100.1
61+
cargo update -p rustls-webpki:0.101.6 --precise 0.101.1
62+
cargo update -p tempfile --precise 3.6.0
63+
cargo update -p h2 --precise 0.3.20
64+
cargo update -p flate2:1.0.27 --precise 1.0.26
65+
cargo update -p cc --precise 1.0.81
66+
cargo update -p tokio-util --precise 0.7.8
67+
cargo update -p time:0.3.15 --precise 0.3.13
5968
- name: Build
6069
run: cargo build --features ${{ matrix.features }} --no-default-features
6170
- name: Clippy

src/lib.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,41 @@ mod test {
550550
assert_eq!(expected, block_async);
551551
}
552552

553+
#[cfg(all(feature = "blocking", feature = "async"))]
554+
#[tokio::test]
555+
async fn test_that_errors_are_propagated() {
556+
let (blocking_client, async_client) = setup_clients().await;
557+
558+
let address = BITCOIND
559+
.client
560+
.get_new_address(Some("test"), Some(AddressType::Legacy))
561+
.unwrap()
562+
.assume_checked();
563+
let txid = BITCOIND
564+
.client
565+
.send_to_address(
566+
&address,
567+
Amount::from_sat(1000),
568+
None,
569+
None,
570+
None,
571+
None,
572+
None,
573+
None,
574+
)
575+
.unwrap();
576+
let _miner = MINER.lock().await;
577+
generate_blocks_and_wait(1);
578+
579+
let tx = blocking_client.get_tx(&txid).unwrap();
580+
let async_res = async_client.broadcast(tx.as_ref().unwrap()).await;
581+
let blocking_res = blocking_client.broadcast(tx.as_ref().unwrap());
582+
assert!(async_res.is_err());
583+
assert_eq!(async_res.unwrap_err().to_string(),"HttpResponse { status: 400, message: \"sendrawtransaction RPC error: {\\\"code\\\":-27,\\\"message\\\":\\\"Transaction already in block chain\\\"}\" }");
584+
assert!(blocking_res.is_err());
585+
assert_eq!(blocking_res.unwrap_err().to_string(),"HttpResponse { status: 400, message: \"sendrawtransaction RPC error: {\\\"code\\\":-27,\\\"message\\\":\\\"Transaction already in block chain\\\"}\" }");
586+
}
587+
553588
#[cfg(all(feature = "blocking", feature = "async"))]
554589
#[tokio::test]
555590
async fn test_get_block_by_hash_not_existing() {

0 commit comments

Comments
 (0)