From a7ed1d352baf9f551b196136f47767a7b50fc5e6 Mon Sep 17 00:00:00 2001 From: hatayama Date: Wed, 8 Jul 2026 18:25:34 +0900 Subject: [PATCH] Remove layout-agnostic skill target test helper Delete the production detector entry that only tests used so runtime code exposes only the layout-aware target detection path. Update the affected tests to call the current layout-state detector explicitly for flat or grouped installs. --- .../Editor/ToolSkillSynchronizerTests.cs | 42 ++++++++++++++----- .../SkillSetup/SkillTargetDetector.cs | 38 ----------------- 2 files changed, 31 insertions(+), 49 deletions(-) diff --git a/Assets/Tests/Editor/ToolSkillSynchronizerTests.cs b/Assets/Tests/Editor/ToolSkillSynchronizerTests.cs index e36625601b..99a895f856 100644 --- a/Assets/Tests/Editor/ToolSkillSynchronizerTests.cs +++ b/Assets/Tests/Editor/ToolSkillSynchronizerTests.cs @@ -85,7 +85,11 @@ public async Task InstallSkillFiles_DoesNotCreateNonExistentTargetDirectories() // Act List targets = - SkillTargetDetector.DetectTargetsAcrossLayoutsAtProjectRoot(_projectRoot, requireSkillsDirectory: true); + SkillTargetDetector.DetectTargetsForLayoutStateAtProjectRoot( + _projectRoot, + requireSkillsDirectory: true, + groupSkillsUnderUnityCliLoop: false, + includeFreshnessCheck: false); await ToolSkillSynchronizer.InstallSkillFiles( targets, groupSkillsUnderUnityCliLoop: false, @@ -670,7 +674,11 @@ public void DetectTargets_DoesNotIncludeTargetsWithOnlyParentDirectory() } // Act - string[] detectedTargetDirs = SkillTargetDetector.DetectTargetsAcrossLayoutsAtProjectRoot(temporaryRoot, requireSkillsDirectory: true) + string[] detectedTargetDirs = SkillTargetDetector.DetectTargetsForLayoutStateAtProjectRoot( + temporaryRoot, + requireSkillsDirectory: true, + groupSkillsUnderUnityCliLoop: false, + includeFreshnessCheck: true) .Select(target => target.DirName) .ToArray(); @@ -691,9 +699,11 @@ public void DetectTargets_WhenParentDirectoryExists_ReportsTargetAsNotOptedIn() Directory.CreateDirectory(Path.Combine(temporaryRoot, dir)); } - ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsAcrossLayoutsAtProjectRoot( + ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsForLayoutStateAtProjectRoot( temporaryRoot, - requireSkillsDirectory: false) + requireSkillsDirectory: false, + groupSkillsUnderUnityCliLoop: false, + includeFreshnessCheck: true) .ToArray(); Assert.AreEqual(SkillTargetDetector.SkillTargetDirs.Length, detectedTargets.Length); @@ -719,7 +729,11 @@ public void DetectTargets_IncludesTargetsWhenSkillsDirectoryExists() } // Act - ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsAcrossLayoutsAtProjectRoot(temporaryRoot, requireSkillsDirectory: true) + ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsForLayoutStateAtProjectRoot( + temporaryRoot, + requireSkillsDirectory: true, + groupSkillsUnderUnityCliLoop: false, + includeFreshnessCheck: true) .ToArray(); // Assert @@ -784,9 +798,11 @@ public void DetectTargets_WhenManagedSkillsDirectoryContainsSkills_ReportsInstal "uloop-compile")); } - ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsAcrossLayoutsAtProjectRoot( + ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsForLayoutStateAtProjectRoot( temporaryRoot, - requireSkillsDirectory: true) + requireSkillsDirectory: true, + groupSkillsUnderUnityCliLoop: true, + includeFreshnessCheck: true) .ToArray(); Assert.AreEqual(SkillTargetDetector.SkillTargetDirs.Length, detectedTargets.Length); @@ -887,9 +903,11 @@ public void DetectTargets_WhenLegacyThirdPartySkillsExist_ReportsInstalled() "---\nname: acme-third-party\ntoolName: acme-third-party\n---\n"); } - ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsAcrossLayoutsAtProjectRoot( + ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsForLayoutStateAtProjectRoot( temporaryRoot, - requireSkillsDirectory: true) + requireSkillsDirectory: true, + groupSkillsUnderUnityCliLoop: false, + includeFreshnessCheck: true) .ToArray(); Assert.AreEqual(SkillTargetDetector.SkillTargetDirs.Length, detectedTargets.Length); @@ -943,9 +961,11 @@ public void DetectTargets_WhenOnlyManualLegacySkillsExist_DoesNotReportInstalled "---\nname: find-orphaned-meta\n---\n"); } - ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsAcrossLayoutsAtProjectRoot( + ToolSkillSynchronizer.SkillTargetInfo[] detectedTargets = SkillTargetDetector.DetectTargetsForLayoutStateAtProjectRoot( temporaryRoot, - requireSkillsDirectory: true) + requireSkillsDirectory: true, + groupSkillsUnderUnityCliLoop: false, + includeFreshnessCheck: true) .ToArray(); Assert.AreEqual(SkillTargetDetector.SkillTargetDirs.Length, detectedTargets.Length); diff --git a/Packages/src/Editor/Infrastructure/SkillSetup/SkillTargetDetector.cs b/Packages/src/Editor/Infrastructure/SkillSetup/SkillTargetDetector.cs index a058a18ba3..88246d2c11 100644 --- a/Packages/src/Editor/Infrastructure/SkillSetup/SkillTargetDetector.cs +++ b/Packages/src/Editor/Infrastructure/SkillSetup/SkillTargetDetector.cs @@ -39,44 +39,6 @@ internal SkillTargetDefinition(string dirName, string flag, string displayName) internal static readonly string[] SkillTargetDirs = SkillTargets.Select(t => t.DirName).ToArray(); - internal static List DetectTargetsAcrossLayoutsAtProjectRoot( - string projectRoot, - bool requireSkillsDirectory) - { - Debug.Assert(!string.IsNullOrEmpty(projectRoot), "projectRoot must not be null or empty"); - - List targets = new(); - - foreach (SkillTargetDefinition target in SkillTargets) - { - string targetRoot = Path.Combine(projectRoot, target.DirName); - if (!Directory.Exists(targetRoot)) - { - continue; - } - - bool hasSkillsDirectory = SkillInstallLayout.HasOptedInSkillsDirectory(targetRoot); - if (requireSkillsDirectory && !hasSkillsDirectory) - { - continue; - } - - bool hasULoopSkills = hasSkillsDirectory - && SkillInstallLayout.HasInstalledSkillsInAnyLayout(projectRoot, targetRoot); - targets.Add(new ToolSkillSynchronizer.SkillTargetInfo( - target.DisplayName, - target.DirName, - target.Flag, - hasSkillsDirectory, - hasULoopSkills, - installState: hasULoopSkills - ? SkillInstallState.Installed - : SkillInstallState.Missing)); - } - - return targets; - } - internal static List DetectTargetsForLayoutStateAtProjectRoot( string projectRoot, bool requireSkillsDirectory,