Tighten Rm level validation
- Require the Rm level to stage or remove the tracked deleted file instead of treating the initial deleted worktree state as solved. - Add a regression test proving read-only commands such as `ls` do not complete the Rm level. - Verify the full JVM level solution suite with the compiled host Git runtime.
This commit is contained in:
@@ -19,8 +19,8 @@ android {
|
|||||||
applicationId = "solutions.tretter.githugandroid"
|
applicationId = "solutions.tretter.githugandroid"
|
||||||
minSdk = 26
|
minSdk = 26
|
||||||
targetSdk = 35
|
targetSdk = 35
|
||||||
versionCode = 125
|
versionCode = 126
|
||||||
versionName = "0.1.124"
|
versionName = "0.1.125"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
|||||||
@@ -14,7 +14,10 @@ internal fun rmLevel(): Level = level(
|
|||||||
hints = emptyList(),
|
hints = emptyList(),
|
||||||
commandSuggestions = listOf("git status", "git rm deleteme.rb"),
|
commandSuggestions = listOf("git status", "git rm deleteme.rb"),
|
||||||
setup = { RepoState(initialized = true, files = listOf(GitFile("deleteme.rb", tracked = true, deleted = true)), commits = listOf(CommitNode("0000001", "Added a temp file")), branches = mapOf("master" to 1)) },
|
setup = { RepoState(initialized = true, files = listOf(GitFile("deleteme.rb", tracked = true, deleted = true)), commits = listOf(CommitNode("0000001", "Added a temp file")), branches = mapOf("master" to 1)) },
|
||||||
validator = repoPredicate { repo -> repo.files.none { it.name == "deleteme.rb" && !it.deleted } || repo.files.any { it.name == "deleteme.rb" && it.deleted && it.staged } },
|
validator = repoPredicate { repo ->
|
||||||
|
repo.files.none { it.name == "deleteme.rb" } ||
|
||||||
|
repo.files.any { it.name == "deleteme.rb" && it.deleted && it.staged }
|
||||||
|
},
|
||||||
testCases = listOf(
|
testCases = listOf(
|
||||||
levelTestCase("git rm deleted path", "git rm deleteme.rb"),
|
levelTestCase("git rm deleted path", "git rm deleteme.rb"),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -37,6 +37,16 @@ class GitSandboxEngineTest {
|
|||||||
assertFalse(updatedRepo.files.any { it.name == "deleteme.rb" })
|
assertFalse(updatedRepo.files.any { it.name == "deleteme.rb" })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun rmLevelIsNotSolvedByReadOnlyCommands() {
|
||||||
|
val level = rmLevel()
|
||||||
|
val repo = level.setup()
|
||||||
|
|
||||||
|
val (updatedRepo, _) = GitSandboxEngine.execute(repo, "ls")
|
||||||
|
|
||||||
|
assertFalse(level.validator(updatedRepo, "ls"))
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun gitMvExpandsWildcardSourcesIntoDestinationDirectory() {
|
fun gitMvExpandsWildcardSourcesIntoDestinationDirectory() {
|
||||||
val repo = RepoState(
|
val repo = RepoState(
|
||||||
|
|||||||
Reference in New Issue
Block a user