mirror of
https://github.com/mempool/mempool.git
synced 2025-04-08 20:08:32 +02:00
Add a RBF tx tracker test
This commit is contained in:
parent
b6ad17b995
commit
a0e41b31e0
@ -528,6 +528,119 @@ describe('Mainnet', () => {
|
||||
cy.get('.alert-mempool').should('be.visible');
|
||||
});
|
||||
|
||||
it('shows RBF transactions properly (mobile - tracker)', () => {
|
||||
cy.mockMempoolSocketV2();
|
||||
cy.viewport('iphone-xr');
|
||||
|
||||
// API Mocks
|
||||
cy.intercept('/api/v1/mining/pools/1w', {
|
||||
fixture: 'details_rbf/api_mining_pools_1w.json'
|
||||
}).as('api_mining_1w');
|
||||
|
||||
cy.intercept('/api/tx/242f3fff9ca7d5aea7a7a57d886f3fa7329e24fac948598a991b3a3dd631cd29', {
|
||||
statusCode: 404,
|
||||
body: 'Transaction not found'
|
||||
}).as('api_tx01_404');
|
||||
|
||||
cy.intercept('/api/v1/tx/242f3fff9ca7d5aea7a7a57d886f3fa7329e24fac948598a991b3a3dd631cd29/cached', {
|
||||
fixture: 'details_rbf/tx01_api_cached.json'
|
||||
}).as('api_tx01_cached');
|
||||
|
||||
cy.intercept('/api/v1/tx/242f3fff9ca7d5aea7a7a57d886f3fa7329e24fac948598a991b3a3dd631cd29/rbf', {
|
||||
fixture: 'details_rbf/tx01_api_rbf.json'
|
||||
}).as('api_tx01_rbf');
|
||||
|
||||
cy.visit('/tx/242f3fff9ca7d5aea7a7a57d886f3fa7329e24fac948598a991b3a3dd631cd29?mode=tracker');
|
||||
cy.wait('@api_tx01_rbf');
|
||||
|
||||
// Start sending mocked WS messages
|
||||
receiveWebSocketMessageFromServer({
|
||||
params: {
|
||||
file: {
|
||||
path: 'details_rbf/tx01_ws_stratum_jobs.json'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
receiveWebSocketMessageFromServer({
|
||||
params: {
|
||||
file: {
|
||||
path: 'details_rbf/tx01_ws_blocks_01.json'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
receiveWebSocketMessageFromServer({
|
||||
params: {
|
||||
file: {
|
||||
path: 'details_rbf/tx01_ws_tx_replaced.json'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
receiveWebSocketMessageFromServer({
|
||||
params: {
|
||||
file: {
|
||||
path: 'details_rbf/tx01_ws_mempool_blocks_01.json'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
cy.get('.alert-replaced').should('be.visible');
|
||||
cy.get('.explainer').should('be.visible');
|
||||
cy.get('svg[data-icon=timeline]').should('be.visible');
|
||||
|
||||
// Second TX setup
|
||||
cy.intercept('/api/tx/b6a53d8a8025c0c5b194345925a99741b645cae0b1f180f0613273029f2bf698', {
|
||||
fixture: 'details_rbf/tx02_api_tx.json'
|
||||
}).as('tx02_api');
|
||||
|
||||
cy.intercept('/api/v1/transaction-times?txId%5B%5D=b6a53d8a8025c0c5b194345925a99741b645cae0b1f180f0613273029f2bf698', {
|
||||
fixture: 'details_rbf/tx02_api_tx_times.json'
|
||||
}).as('tx02_api_tx_times');
|
||||
|
||||
cy.intercept('/api/v1/tx/b6a53d8a8025c0c5b194345925a99741b645cae0b1f180f0613273029f2bf698/rbf', {
|
||||
fixture: 'details_rbf/tx02_api_rbf.json'
|
||||
}).as('tx02_api_rbf');
|
||||
|
||||
cy.intercept('/api/v1/cpfp/b6a53d8a8025c0c5b194345925a99741b645cae0b1f180f0613273029f2bf698', {
|
||||
fixture: 'details_rbf/tx02_api_cpfp.json'
|
||||
}).as('tx02_api_cpfp');
|
||||
|
||||
// Go to the replacement tx
|
||||
cy.get('.alert-replaced a').click();
|
||||
|
||||
cy.wait('@tx02_api_cpfp');
|
||||
|
||||
receiveWebSocketMessageFromServer({
|
||||
params: {
|
||||
file: {
|
||||
path: 'details_rbf/tx02_ws_tx_position.json'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
receiveWebSocketMessageFromServer({
|
||||
params: {
|
||||
file: {
|
||||
path: 'details_rbf/tx02_ws_mempool_blocks_01.json'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
cy.get('svg[data-icon=hourglass-half]').should('be.visible');
|
||||
|
||||
receiveWebSocketMessageFromServer({
|
||||
params: {
|
||||
file: {
|
||||
path: 'details_rbf/tx02_ws_block.json'
|
||||
}
|
||||
}
|
||||
});
|
||||
cy.get('app-confirmations');
|
||||
cy.get('svg[data-icon=circle-check]').should('be.visible');
|
||||
});
|
||||
|
||||
it('shows RBF transactions properly (desktop)', () => {
|
||||
cy.intercept('/api/v1/tx/21518a98d1aa9df524865d2f88c578499f524eb1d0c4d3e70312ab863508692f/cached', {
|
||||
fixture: 'mainnet_tx_cached.json'
|
||||
|
Loading…
x
Reference in New Issue
Block a user