| package sequence |
|
|
| import ( |
| "testing" |
|
|
| "github.com/stretchr/testify/require" |
| ) |
|
|
| func TestCommitModeValidate(t *testing.T) { |
| tests := []struct { |
| name string |
| mode CommitMode |
| wantErr string |
| }{ |
| { |
| name: "with caller", |
| mode: CommitModeWithCaller, |
| }, |
| { |
| name: "independent", |
| mode: CommitModeIndependent, |
| }, |
| { |
| name: "missing", |
| wantErr: "commit mode is required", |
| }, |
| { |
| name: "invalid", |
| mode: CommitMode("invalid"), |
| wantErr: "commit mode is invalid: invalid", |
| }, |
| } |
|
|
| for _, tt := range tests { |
| t.Run(tt.name, func(t *testing.T) { |
| err := tt.mode.Validate() |
| if tt.wantErr == "" { |
| require.NoError(t, err) |
| return |
| } |
|
|
| require.EqualError(t, err, tt.wantErr) |
| }) |
| } |
| } |
|
|
| func TestDefinitionValidateRequiresCommitMode(t *testing.T) { |
| def := Definition{ |
| Prefix: "INV", |
| SuffixTemplate: "{{.NextSequenceNumber}}", |
| Scope: "invoices/test", |
| } |
|
|
| err := def.Validate() |
| require.EqualError(t, err, "commit mode is required") |
| } |
|
|
| func TestDefinitionValidateRejectsInvalidCommitMode(t *testing.T) { |
| def := Definition{ |
| Prefix: "INV", |
| SuffixTemplate: "{{.NextSequenceNumber}}", |
| Scope: "invoices/test", |
| CommitMode: CommitMode("invalid"), |
| } |
|
|
| err := def.Validate() |
| require.EqualError(t, err, "commit mode is invalid: invalid") |
| } |
|
|