@ -20,6 +20,7 @@ import (
"context"
"errors"
"io"
"strings"
"testing"
"github.com/stretchr/testify/assert"
@ -212,3 +213,66 @@ func TestRollback_EmptyDescription(t *testing.T) {
// Verify the default description was used for empty string
is . Equal ( "Rollback to 1" , newRelease . Info . Description )
}
func TestRollback_DescriptionTooLong ( t * testing . T ) {
req := require . New ( t )
rollAction := rollbackAction ( t )
rel1 := releaseStub ( )
rel1 . Name = "test-release-desc-long"
rel1 . Version = 1
rel1 . Info . Status = common . StatusSuperseded
rel1 . ApplyMethod = "csa"
req . NoError ( rollAction . cfg . Releases . Create ( rel1 ) )
rel2 := releaseStub ( )
rel2 . Name = "test-release-desc-long"
rel2 . Version = 2
rel2 . Info . Status = common . StatusDeployed
rel2 . ApplyMethod = "csa"
req . NoError ( rollAction . cfg . Releases . Create ( rel2 ) )
rollAction . Description = strings . Repeat ( "a" , MaxDescriptionLength + 1 )
rollAction . Version = 1
rollAction . ServerSideApply = "false"
err := rollAction . Run ( "test-release-desc-long" )
req . Error ( err )
req . Contains ( err . Error ( ) , "description must be" )
}
func TestRollback_DescriptionAtMaxLength ( t * testing . T ) {
is := assert . New ( t )
req := require . New ( t )
rollAction := rollbackAction ( t )
rel1 := releaseStub ( )
rel1 . Name = "test-release-desc-max"
rel1 . Version = 1
rel1 . Info . Status = common . StatusSuperseded
rel1 . ApplyMethod = "csa"
req . NoError ( rollAction . cfg . Releases . Create ( rel1 ) )
rel2 := releaseStub ( )
rel2 . Name = "test-release-desc-max"
rel2 . Version = 2
rel2 . Info . Status = common . StatusDeployed
rel2 . ApplyMethod = "csa"
req . NoError ( rollAction . cfg . Releases . Create ( rel2 ) )
rollAction . Description = strings . Repeat ( "a" , MaxDescriptionLength )
rollAction . Version = 1
rollAction . ServerSideApply = "false"
err := rollAction . Run ( "test-release-desc-max" )
req . NoError ( err )
newReleasei , err := rollAction . cfg . Releases . Get ( "test-release-desc-max" , 3 )
req . NoError ( err )
newRelease , err := releaserToV1Release ( newReleasei )
req . NoError ( err )
is . Equal ( strings . Repeat ( "a" , MaxDescriptionLength ) , newRelease . Info . Description )
}