From e8ba6b9e220240a02d74471b0f0363a015103fbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Negovanovi=C4=87?= <93934272+Stefan-Ethernal@users.noreply.github.com> Date: Fri, 29 Nov 2024 16:12:17 +0100 Subject: [PATCH] feat: return an error in case agglayer returns certificate with height lower than in local storage (#209) --- aggsender/aggsender_test.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/aggsender/aggsender_test.go b/aggsender/aggsender_test.go index 97667e068..749238423 100644 --- a/aggsender/aggsender_test.go +++ b/aggsender/aggsender_test.go @@ -1827,6 +1827,33 @@ func TestCheckLastCertificateFromAgglayer_Case2_1NoCertRemoteButCertLocal(t *tes // CASE 3.1: the certificate on the agglayer has less height than the one stored in the local storage func TestCheckLastCertificateFromAgglayer_Case3_1LessHeight(t *testing.T) { + testData := newAggsenderTestData(t, testDataFlagMockStorage) + testData.l2syncerMock.EXPECT().OriginNetwork().Return(networkIDTest).Once() + testData.agglayerClientMock.EXPECT().GetLatestKnownCertificateHeader(networkIDTest). + Return(certInfoToCertHeader(&testData.testCerts[0], networkIDTest), nil).Once() + testData.storageMock.EXPECT().GetLastSentCertificate().Return(&testData.testCerts[1], nil) + + err := testData.sut.checkLastCertificateFromAgglayer(testData.ctx) + + require.ErrorContains(t, err, "recovery: the last certificate in the agglayer has less height (1) than the one in the local storage (2)") +} + +// CASE 3.2: AggSender and AggLayer not same height. AggLayer has a new certificate +func TestCheckLastCertificateFromAgglayer_Case3_2Mismatch(t *testing.T) { + testData := newAggsenderTestData(t, testDataFlagMockStorage) + testData.l2syncerMock.EXPECT().OriginNetwork().Return(networkIDTest).Once() + testData.agglayerClientMock.EXPECT().GetLatestKnownCertificateHeader(networkIDTest). + Return(certInfoToCertHeader(&testData.testCerts[0], networkIDTest), nil).Once() + testData.storageMock.EXPECT().GetLastSentCertificate().Return(&testData.testCerts[1], nil) + + err := testData.sut.checkLastCertificateFromAgglayer(testData.ctx) + + require.ErrorContains(t, err, "recovery: the last certificate in the agglayer has less height (1) than the one in the local storage (2)") +} + +// CASE 3.2: AggSender and AggLayer not same height. AggLayer has a new certificate +func TestCheckLastCertificateFromAgglayer_Case3_2Mismatch(t *testing.T) { +>>>>>>> f9e53b7 (feat: return an error in case agglayer returns certificate with height lower than in local storage (#209)) testData := newAggsenderTestData(t, testDataFlagMockStorage) testData.l2syncerMock.EXPECT().OriginNetwork().Return(networkIDTest).Once() testData.agglayerClientMock.EXPECT().GetLatestKnownCertificateHeader(networkIDTest).