mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-25 03:22:36 +00:00 
			
		
		
		
	Change all license headers to comply with REUSE specification. Fix #16132 Co-authored-by: flynnnnnnnnnn <flynnnnnnnnnn@github> Co-authored-by: John Olheiser <john.olheiser@gmail.com>
		
			
				
	
	
		
			105 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2022 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package structs
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| 	"gopkg.in/yaml.v3"
 | |
| )
 | |
| 
 | |
| func TestIssueTemplate_Type(t *testing.T) {
 | |
| 	tests := []struct {
 | |
| 		fileName string
 | |
| 		want     IssueTemplateType
 | |
| 	}{
 | |
| 		{
 | |
| 			fileName: ".gitea/ISSUE_TEMPLATE/bug_report.yaml",
 | |
| 			want:     IssueTemplateTypeYaml,
 | |
| 		},
 | |
| 		{
 | |
| 			fileName: ".gitea/ISSUE_TEMPLATE/bug_report.md",
 | |
| 			want:     IssueTemplateTypeMarkdown,
 | |
| 		},
 | |
| 		{
 | |
| 			fileName: ".gitea/ISSUE_TEMPLATE/bug_report.txt",
 | |
| 			want:     "",
 | |
| 		},
 | |
| 		{
 | |
| 			fileName: ".gitea/ISSUE_TEMPLATE/config.yaml",
 | |
| 			want:     "",
 | |
| 		},
 | |
| 	}
 | |
| 	for _, tt := range tests {
 | |
| 		t.Run(tt.fileName, func(t *testing.T) {
 | |
| 			it := IssueTemplate{
 | |
| 				FileName: tt.fileName,
 | |
| 			}
 | |
| 			assert.Equal(t, tt.want, it.Type())
 | |
| 		})
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestIssueTemplateLabels_UnmarshalYAML(t *testing.T) {
 | |
| 	tests := []struct {
 | |
| 		name    string
 | |
| 		content string
 | |
| 		tmpl    *IssueTemplate
 | |
| 		want    *IssueTemplate
 | |
| 		wantErr string
 | |
| 	}{
 | |
| 		{
 | |
| 			name:    "array",
 | |
| 			content: `labels: ["a", "b", "c"]`,
 | |
| 			tmpl: &IssueTemplate{
 | |
| 				Labels: []string{"should_be_overwrote"},
 | |
| 			},
 | |
| 			want: &IssueTemplate{
 | |
| 				Labels: []string{"a", "b", "c"},
 | |
| 			},
 | |
| 		},
 | |
| 		{
 | |
| 			name:    "string",
 | |
| 			content: `labels: "a,b,c"`,
 | |
| 			tmpl: &IssueTemplate{
 | |
| 				Labels: []string{"should_be_overwrote"},
 | |
| 			},
 | |
| 			want: &IssueTemplate{
 | |
| 				Labels: []string{"a", "b", "c"},
 | |
| 			},
 | |
| 		},
 | |
| 		{
 | |
| 			name:    "empty",
 | |
| 			content: `labels:`,
 | |
| 			tmpl: &IssueTemplate{
 | |
| 				Labels: []string{"should_be_overwrote"},
 | |
| 			},
 | |
| 			want: &IssueTemplate{
 | |
| 				Labels: nil,
 | |
| 			},
 | |
| 		},
 | |
| 		{
 | |
| 			name: "error",
 | |
| 			content: `
 | |
| labels:
 | |
|   a: aa
 | |
|   b: bb
 | |
| `,
 | |
| 			tmpl:    &IssueTemplate{},
 | |
| 			wantErr: "line 3: cannot unmarshal !!map into IssueTemplateLabels",
 | |
| 		},
 | |
| 	}
 | |
| 	for _, tt := range tests {
 | |
| 		t.Run(tt.name, func(t *testing.T) {
 | |
| 			err := yaml.Unmarshal([]byte(tt.content), tt.tmpl)
 | |
| 			if tt.wantErr != "" {
 | |
| 				assert.EqualError(t, err, tt.wantErr)
 | |
| 			} else {
 | |
| 				assert.NoError(t, err)
 | |
| 				assert.Equal(t, tt.want, tt.tmpl)
 | |
| 			}
 | |
| 		})
 | |
| 	}
 | |
| }
 |