github.phpd.cn/thought-machine/please@v12.2.0+incompatible/src/core/build_input_test.go (about)

     1  package core
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestParseNamedOutputLabel(t *testing.T) {
    10  	pkg := NewPackage("")
    11  	input, _ := MustParseNamedOutputLabel("//src/core:target1|test", pkg)
    12  	label, ok := input.(NamedOutputLabel)
    13  	assert.True(t, ok)
    14  	assert.Equal(t, "src/core", label.PackageName)
    15  	assert.Equal(t, "target1", label.Name)
    16  	assert.Equal(t, "test", label.Output)
    17  }
    18  
    19  func TestParseNamedOutputLabelRelative(t *testing.T) {
    20  	pkg := NewPackage("src/core")
    21  	input, _ := MustParseNamedOutputLabel(":target1|test", pkg)
    22  	label, ok := input.(NamedOutputLabel)
    23  	assert.True(t, ok)
    24  	assert.Equal(t, "src/core", label.PackageName)
    25  	assert.Equal(t, "target1", label.Name)
    26  	assert.Equal(t, "test", label.Output)
    27  }
    28  
    29  func TestParseNamedOutputLabelNoOutput(t *testing.T) {
    30  	pkg := NewPackage("")
    31  	input, _ := MustParseNamedOutputLabel("//src/core:target1", pkg)
    32  	_, ok := input.(NamedOutputLabel)
    33  	assert.False(t, ok)
    34  	label, ok := input.(BuildLabel)
    35  	assert.True(t, ok)
    36  	assert.Equal(t, "src/core", label.PackageName)
    37  	assert.Equal(t, "target1", label.Name)
    38  }
    39  
    40  func TestParseNamedOutputLabelEmptyOutput(t *testing.T) {
    41  	pkg := NewPackage("")
    42  	assert.Panics(t, func() {
    43  		MustParseNamedOutputLabel("//src/core:target1|", pkg)
    44  	})
    45  }