code.gitea.io/gitea@v1.19.3/modules/label/parser_test.go (about)

     1  // Copyright 2023 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package label
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestYamlParser(t *testing.T) {
    14  	data := []byte(`labels:
    15    - name: priority/low
    16      exclusive: true
    17      color: "#0000ee"
    18      description: "Low priority"
    19    - name: priority/medium
    20      exclusive: true
    21      color: "0e0"
    22      description: "Medium priority"
    23    - name: priority/high
    24      exclusive: true
    25      color: "#ee0000"
    26      description: "High priority"
    27    - name: type/bug
    28      color: "#f00"
    29      description: "Bug"`)
    30  
    31  	labels, err := parseYamlFormat("test", data)
    32  	require.NoError(t, err)
    33  	require.Len(t, labels, 4)
    34  	assert.Equal(t, "priority/low", labels[0].Name)
    35  	assert.True(t, labels[0].Exclusive)
    36  	assert.Equal(t, "#0000ee", labels[0].Color)
    37  	assert.Equal(t, "Low priority", labels[0].Description)
    38  	assert.Equal(t, "priority/medium", labels[1].Name)
    39  	assert.True(t, labels[1].Exclusive)
    40  	assert.Equal(t, "#00ee00", labels[1].Color)
    41  	assert.Equal(t, "Medium priority", labels[1].Description)
    42  	assert.Equal(t, "priority/high", labels[2].Name)
    43  	assert.True(t, labels[2].Exclusive)
    44  	assert.Equal(t, "#ee0000", labels[2].Color)
    45  	assert.Equal(t, "High priority", labels[2].Description)
    46  	assert.Equal(t, "type/bug", labels[3].Name)
    47  	assert.False(t, labels[3].Exclusive)
    48  	assert.Equal(t, "#ff0000", labels[3].Color)
    49  	assert.Equal(t, "Bug", labels[3].Description)
    50  }
    51  
    52  func TestLegacyParser(t *testing.T) {
    53  	data := []byte(`#ee0701 bug   ;   Something is not working
    54  #cccccc   duplicate ; This issue or pull request already exists
    55  #84b6eb enhancement`)
    56  
    57  	labels, err := parseLegacyFormat("test", data)
    58  	require.NoError(t, err)
    59  	require.Len(t, labels, 3)
    60  	assert.Equal(t, "bug", labels[0].Name)
    61  	assert.False(t, labels[0].Exclusive)
    62  	assert.Equal(t, "#ee0701", labels[0].Color)
    63  	assert.Equal(t, "Something is not working", labels[0].Description)
    64  	assert.Equal(t, "duplicate", labels[1].Name)
    65  	assert.False(t, labels[1].Exclusive)
    66  	assert.Equal(t, "#cccccc", labels[1].Color)
    67  	assert.Equal(t, "This issue or pull request already exists", labels[1].Description)
    68  	assert.Equal(t, "enhancement", labels[2].Name)
    69  	assert.False(t, labels[2].Exclusive)
    70  	assert.Equal(t, "#84b6eb", labels[2].Color)
    71  	assert.Empty(t, labels[2].Description)
    72  }