2022-11-16 14:14:58 +03:00
// Copyright 2022 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2022-11-16 14:14:58 +03:00
package structs
import (
"testing"
"github.com/stretchr/testify/assert"
2022-11-19 18:22:15 +03:00
"gopkg.in/yaml.v3"
2022-11-16 14:14:58 +03:00
)
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 ( ) )
} )
}
}
2022-11-19 18:22:15 +03:00
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 )
}
} )
}
}