github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/osutils/autostart/legacy_darwin_test.go (about)

     1  //go:build darwin
     2  // +build darwin
     3  
     4  package autostart
     5  
     6  import (
     7  	"path/filepath"
     8  	"testing"
     9  
    10  	"github.com/ActiveState/cli/internal/environment"
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestIsLegacyPlist(t *testing.T) {
    15  	type args struct {
    16  		filename string
    17  	}
    18  	tests := []struct {
    19  		name    string
    20  		args    args
    21  		want    bool
    22  		wantErr bool
    23  	}{
    24  		{
    25  			name: "legacy plist",
    26  			args: args{
    27  				filename: "legacy.plist",
    28  			},
    29  			want:    true,
    30  			wantErr: false,
    31  		},
    32  		{
    33  			name: "current plist",
    34  			args: args{
    35  				filename: "current.plist",
    36  			},
    37  			want:    false,
    38  			wantErr: false,
    39  		},
    40  		{
    41  			name: "non-existent plist",
    42  			args: args{
    43  				filename: "not-there.plist",
    44  			},
    45  			want:    false,
    46  			wantErr: false,
    47  		},
    48  	}
    49  	for _, tt := range tests {
    50  		t.Run(tt.name, func(t *testing.T) {
    51  			root, err := environment.GetRootPath()
    52  			assert.NoError(t, err, "should detect root path")
    53  
    54  			path := filepath.Join(root, "internal", "osutils", "autostart", "testdata", tt.args.filename)
    55  			got, err := isLegacyPlist(path)
    56  			if (err != nil) != tt.wantErr {
    57  				t.Errorf("isLegacyPlist() error = %v, wantErr %v", err, tt.wantErr)
    58  				return
    59  			}
    60  			if got != tt.want {
    61  				t.Errorf("isLegacyPlist() = %v, want %v", got, tt.want)
    62  			}
    63  		})
    64  	}
    65  }