diff --git a/macros/tests/missing_txs.sql b/macros/tests/missing_txs.sql index 54eb1a7..c05fe84 100644 --- a/macros/tests/missing_txs.sql +++ b/macros/tests/missing_txs.sql @@ -145,3 +145,49 @@ WHERE FINAL ) {% endmacro %} + +{% macro recent_missing_receipts( + model, + threshold + ) %} + WITH txs_base AS ( + SELECT + block_number AS base_block_number, + tx_hash AS base_tx_hash + FROM + {{ ref('test_silver__transactions_recent') }} + ), + model_name AS ( + SELECT + block_number AS model_block_number, + tx_hash AS model_tx_hash + FROM + {{ model }} + ), + FINAL AS ( + SELECT + base_block_number, + base_tx_hash, + model_block_number, + model_tx_hash + FROM + txs_base + LEFT JOIN model_name + ON base_block_number = model_block_number + AND base_tx_hash = model_tx_hash + WHERE + model_tx_hash IS NULL + OR model_block_number IS NULL + ) +SELECT + * +FROM + FINAL +WHERE + ( + SELECT + COUNT(*) >= {{ threshold }} + FROM + FINAL + ) +{% endmacro %} diff --git a/models/silver/core/tests/receipts/test_silver__receipts_recent.yml b/models/silver/core/tests/receipts/test_silver__receipts_recent.yml index 1e8cfa1..72f0fb3 100644 --- a/models/silver/core/tests/receipts/test_silver__receipts_recent.yml +++ b/models/silver/core/tests/receipts/test_silver__receipts_recent.yml @@ -9,6 +9,9 @@ models: partition_by: - BLOCK_NUMBER column_name: POSITION + config: + severity: error + error_if: ">10" columns: - name: BLOCK_NUMBER tests: diff --git a/tests/bsc/test_silver__recent_missing_receipts.sql b/tests/bsc/test_silver__recent_missing_receipts.sql index f657fd3..9b4ee8c 100644 --- a/tests/bsc/test_silver__recent_missing_receipts.sql +++ b/tests/bsc/test_silver__recent_missing_receipts.sql @@ -1,2 +1,2 @@ -- depends_on: {{ ref('test_silver__transactions_recent') }} -{{ recent_missing_txs(ref("test_silver__receipts_recent")) }} +{{ recent_missing_receipts(ref("test_silver__receipts_recent"), 10) }}