Files
atlantis/server/events/vcs/github_client_internal_test.go
Luke Kysow 8aca81966f Add Apache 2 license and copyright.
Add Apache 2 license and Hootsuite copyright to all golang
files. Add a disclaimer that the files have been modified
hereafter by contributors to this repo in order to abide
by the Apache 2 license requirements.
2018-03-15 17:25:02 -07:00

79 lines
1.5 KiB
Go

// Copyright 2017 HootSuite Media Inc.
//
// Licensed under the Apache License, Version 2.0 (the License);
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an AS IS BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Modified hereafter by contributors to runatlantis/atlantis.
//
package vcs
import (
"testing"
. "github.com/runatlantis/atlantis/testing"
)
func TestSplitAtMaxChars(t *testing.T) {
cases := []struct {
comment string
max int
exp []string
}{
// Test when comment is <= max length.
{
"",
5,
[]string{""},
},
{
"1",
5,
[]string{"1"},
},
{
"12345",
5,
[]string{"12345"},
},
// Now test when we need to join.
{
"123456",
5,
[]string{"1join", "2join", "3join", "4join", "5join", "6"},
},
{
"123456",
10,
[]string{"123456"},
},
{
"12345678901",
10,
[]string{"123456join", "78901"},
},
// Test the edge case of max < len("join")
{
"abc",
2,
nil,
},
{
"abcde",
4,
nil,
},
}
for _, c := range cases {
client := GithubClient{}
t.Run(c.comment, func(t *testing.T) {
Equals(t, c.exp, client.splitAtMaxChars(c.comment, c.max, "join"))
})
}
}