All checks were successful
		
		
	
	Test / Create distribution (push) Successful in 37s
				
			Test / Sandbox (push) Successful in 2m23s
				
			Test / Hakurei (push) Successful in 3m9s
				
			Test / Hpkg (push) Successful in 4m7s
				
			Test / Sandbox (race detector) (push) Successful in 4m11s
				
			Test / Hakurei (race detector) (push) Successful in 5m1s
				
			Test / Flake checks (push) Successful in 1m30s
				
			These are free of the dispatcher from internal/app. This change relocates them into their own package. Signed-off-by: Ophestra <cat@gensokyo.uk>
		
			
				
	
	
		
			91 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package validate_test
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"hakurei.app/internal/validate"
 | 
						|
)
 | 
						|
 | 
						|
func TestDeepContainsH(t *testing.T) {
 | 
						|
	t.Parallel()
 | 
						|
 | 
						|
	testCases := []struct {
 | 
						|
		name     string
 | 
						|
		basepath string
 | 
						|
		targpath string
 | 
						|
		want     bool
 | 
						|
		wantErr  bool
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			name: "empty",
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:     "equal abs",
 | 
						|
			basepath: "/run",
 | 
						|
			targpath: "/run",
 | 
						|
			want:     true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:     "equal rel",
 | 
						|
			basepath: "./run",
 | 
						|
			targpath: "run",
 | 
						|
			want:     true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:     "contains abs",
 | 
						|
			basepath: "/run",
 | 
						|
			targpath: "/run/dbus",
 | 
						|
			want:     true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:     "inverse contains abs",
 | 
						|
			basepath: "/run/dbus",
 | 
						|
			targpath: "/run",
 | 
						|
			want:     false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:     "contains rel",
 | 
						|
			basepath: "../run",
 | 
						|
			targpath: "../run/dbus",
 | 
						|
			want:     true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:     "inverse contains rel",
 | 
						|
			basepath: "../run/dbus",
 | 
						|
			targpath: "../run",
 | 
						|
			want:     false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:     "weird abs",
 | 
						|
			basepath: "/run/dbus",
 | 
						|
			targpath: "/run/dbus/../current-system",
 | 
						|
			want:     false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:     "weird rel",
 | 
						|
			basepath: "../run/dbus",
 | 
						|
			targpath: "../run/dbus/../current-system",
 | 
						|
			want:     false,
 | 
						|
		},
 | 
						|
 | 
						|
		{
 | 
						|
			name:     "invalid mix",
 | 
						|
			basepath: "/run",
 | 
						|
			targpath: "./run",
 | 
						|
			wantErr:  true,
 | 
						|
		},
 | 
						|
	}
 | 
						|
 | 
						|
	for _, tc := range testCases {
 | 
						|
		t.Run(tc.name, func(t *testing.T) {
 | 
						|
			t.Parallel()
 | 
						|
			if got, err := validate.DeepContainsH(tc.basepath, tc.targpath); (err != nil) != tc.wantErr {
 | 
						|
				t.Errorf("DeepContainsH: error = %v, wantErr %v", err, tc.wantErr)
 | 
						|
			} else if got != tc.want {
 | 
						|
				t.Errorf("DeepContainsH: = %v, want %v", got, tc.want)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |