-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3822 rejected transaction api service #101
base: main
Are you sure you want to change the base?
Conversation
Delta Summary - Kotlin Code Coverage
|
48c374d
to
2bba6d0
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #101 +/- ##
============================================
- Coverage 70.38% 68.33% -2.06%
- Complexity 1040 1053 +13
============================================
Files 282 248 -34
Lines 11314 10398 -916
Branches 1082 867 -215
============================================
- Hits 7963 7105 -858
+ Misses 2880 2824 -56
+ Partials 471 469 -2
|
2bba6d0
to
a6f95fa
Compare
import { beforeAll, describe, expect, it } from "@jest/globals"; | ||
import { TransactionExclusionClient } from "./utils/utils"; | ||
|
||
const transactionExclusionTestSuite = (title: string) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As already mentioned before, this shall be an integration test inside transaction-exclusion-api:app
module, not an end-to-end tests. This test is a sort of integration/contract test, not end2end.
We shall have, however, a true e2e test: send a Transaction to the sequencer that cannot be proven, and verify that it was delivered and available through linea_getTransactionExclusionStatusV1
. This will ensure that the whole e2e flow works.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I'm opted for a true e2e test too, but we need to wait for the release of the linea-sequencer
plugin with this PR which would support reporting rejected transactions on tx simulation, but more importantly, the fixes of some blocking issues such as: missing overflows
field in the save rejected transaction request and more descriptive reason messages. I'd update the e2e tests once the release is ready from besu team
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As already mentioned before, this shall be an integration test inside transaction-exclusion-api:app module.
Still, the end2end test you will write does not invalidate the integration test inside transaction-exclusion-api:app
they serve different purposes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, integration tests inside transaction-exclusion-api:app
will be added
2309502
to
e29b83a
Compare
235df48
to
f1492c2
Compare
import kotlin.random.Random | ||
|
||
@ExtendWith(VertxExtension::class) | ||
class TransactionExclusionAppTest : CleanDbTestSuiteParallel() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here, I'm making this integration test to be able to run each test case in parallel with no order restriction instead of in sequential order (which was the initial design), the tradeoff is more databases to create (each per test case) and more code for initial setup in each test case.
.github/workflows/main.yml
Outdated
@@ -202,9 +202,39 @@ jobs: | |||
e2e-tests-logs-dump: true | |||
secrets: inherit | |||
|
|||
run-e2e-tests-tx-exclusion-geth-tracing: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here, I separate the transaction exclusion e2e tests from the existing e2e tests and let them run in different runners to achieve parallelism, the reason is not to increase the total time for all e2e tests given that transaction exclusion e2e tests are not related to any of the existing e2e tests, and also given that they would use a sequencer and l2 besu node with reduced trace limits (otherwise if using the default trace limits, it would take quite some time or even timeout for the nodes to reject an over traces-limit transaction), so it'd be best to separate them from the existing e2e tests (where the nodes are shared across each e2e test)
2d2f032
to
f75cc83
Compare
…tion exclusion api
…on as primary key of tables
…ueryable window config
…ry for transaction exclusion api testing
d227ddf
to
796aa7c
Compare
This PR implements issue(s) #
Checklist