github.com/ava-labs/avalanchego@v1.11.11/upgrade/upgrade_test.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package upgrade
     5  
     6  import (
     7  	"testing"
     8  	"time"
     9  
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestValidDefaultUpgrades(t *testing.T) {
    14  	for _, upgradeTest := range []struct {
    15  		name    string
    16  		upgrade Config
    17  	}{
    18  		{
    19  			name:    "Default",
    20  			upgrade: Default,
    21  		},
    22  		{
    23  			name:    "Fuji",
    24  			upgrade: Fuji,
    25  		},
    26  		{
    27  			name:    "Mainnet",
    28  			upgrade: Mainnet,
    29  		},
    30  	} {
    31  		t.Run(upgradeTest.name, func(t *testing.T) {
    32  			require := require.New(t)
    33  			require.NoError(upgradeTest.upgrade.Validate())
    34  		})
    35  	}
    36  }
    37  
    38  func TestInvalidUpgrade(t *testing.T) {
    39  	require := require.New(t)
    40  	firstUpgradeTime := time.Now()
    41  	invalidSecondUpgradeTime := firstUpgradeTime.Add(-1 * time.Second)
    42  	upgrade := Config{
    43  		ApricotPhase1Time: firstUpgradeTime,
    44  		ApricotPhase2Time: invalidSecondUpgradeTime,
    45  	}
    46  	err := upgrade.Validate()
    47  	require.ErrorIs(err, ErrInvalidUpgradeTimes)
    48  }