@@ -506,6 +506,37 @@ func TestLisaSocketGlobsCustomOverridesFallbacks(t *testing.T) {
506506 }
507507}
508508
509+ func TestDiscoverSocketTargetsDedupesSymlinkedSocketAliases (t * testing.T ) {
510+ t .Setenv ("TMUX" , "" )
511+ stubLisaSockets (t , []string {}, nil )
512+
513+ realDir := t .TempDir ()
514+ linkDir := filepath .Join (t .TempDir (), "alias" )
515+ if err := os .Symlink (realDir , linkDir ); err != nil {
516+ t .Skipf ("symlink unsupported: %v" , err )
517+ }
518+
519+ socketName := "same.sock"
520+ realSocket := filepath .Join (realDir , socketName )
521+ aliasSocket := filepath .Join (linkDir , socketName )
522+ if err := os .WriteFile (realSocket , []byte ("x" ), 0o600 ); err != nil {
523+ t .Fatalf ("write real socket: %v" , err )
524+ }
525+
526+ cfg := config {
527+ includeDefaultSocket : false ,
528+ includeLisaSockets : false ,
529+ explicitSockets : []string {realSocket , aliasSocket },
530+ }
531+ targets , discoveryErrors := discoverSocketTargets (cfg )
532+ if len (discoveryErrors ) != 0 {
533+ t .Fatalf ("unexpected discoveryErrors: %v" , discoveryErrors )
534+ }
535+ if len (targets ) != 1 {
536+ t .Fatalf ("targets len = %d, targets=%v" , len (targets ), targets )
537+ }
538+ }
539+
509540func containsString (items []string , needle string ) bool {
510541 for _ , item := range items {
511542 if item == needle {
0 commit comments