mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-09-22 11:10:12 +00:00
test(agentcompat): add integration scenarios
Co-authored-by: naiba/CloudCode <hi+cloudcode@nai.ba>
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
//go:build linux && agentcompat
|
||||
|
||||
package scenario
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestReconnectObservation_RejectsNonIncreasingGenerations(t *testing.T) {
|
||||
// Given
|
||||
observation := ReconnectObservation{OldGeneration: 4, NewGeneration: 4}
|
||||
|
||||
// When
|
||||
err := observation.Validate()
|
||||
|
||||
// Then
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func TestReconnectObservation_RequiresUniqueCompleteTaskIDs(t *testing.T) {
|
||||
// Given
|
||||
observation := ReconnectObservation{
|
||||
OldGeneration: 2,
|
||||
NewGeneration: 3,
|
||||
DisconnectAt: time.Unix(10, 0),
|
||||
ReconnectAt: time.Unix(11, 0),
|
||||
TaskIDs: []uint64{7, 7},
|
||||
ResultIDs: []uint64{7},
|
||||
}
|
||||
|
||||
// When
|
||||
err := observation.Validate()
|
||||
|
||||
// Then
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func TestReconnectObservation_RejectsNonAdjacentDuplicateTaskIDs(t *testing.T) {
|
||||
// Given
|
||||
observation := ReconnectObservation{
|
||||
ServerID: 7,
|
||||
UUID: "00000000-0000-0000-0000-000000000111",
|
||||
OldGeneration: 2,
|
||||
NewGeneration: 3,
|
||||
DisconnectAt: time.Unix(10, 0),
|
||||
ReconnectAt: time.Unix(11, 0),
|
||||
TaskIDs: []uint64{7, 8, 7},
|
||||
ResultIDs: []uint64{7, 8, 7},
|
||||
PostReconnect: true,
|
||||
AgentRestarted: true,
|
||||
}
|
||||
|
||||
// When
|
||||
err := observation.Validate()
|
||||
|
||||
// Then
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func TestReconnectObservation_RecordsReconnectInterval(t *testing.T) {
|
||||
// Given
|
||||
observation := ReconnectObservation{
|
||||
ServerID: 7,
|
||||
UUID: "00000000-0000-0000-0000-000000000111",
|
||||
OldGeneration: 2,
|
||||
NewGeneration: 3,
|
||||
DisconnectAt: time.Unix(10, 0),
|
||||
ReconnectAt: time.Unix(11, 0),
|
||||
TaskIDs: []uint64{7},
|
||||
ResultIDs: []uint64{7},
|
||||
PostReconnect: true,
|
||||
AgentRestarted: true,
|
||||
}
|
||||
|
||||
// When
|
||||
err := observation.Validate()
|
||||
|
||||
// Then
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, time.Second, observation.ReconnectInterval())
|
||||
}
|
||||
Reference in New Issue
Block a user