From 35ed77637e668260b4ed34659c8352238120ed9b Mon Sep 17 00:00:00 2001 From: Jacob Quinn Date: Wed, 16 Aug 2023 12:06:05 -0600 Subject: [PATCH] Add a test --- test/project_manifest.jl | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/test/project_manifest.jl b/test/project_manifest.jl index 03148c6412..467abceaf9 100644 --- a/test/project_manifest.jl +++ b/test/project_manifest.jl @@ -1,7 +1,7 @@ module ProjectManifestTest import ..Pkg # ensure we are using the correct Pkg -using Test, Pkg +using Test, Pkg, UUIDs using ..Utils temp_pkg_dir() do project_path @@ -29,6 +29,12 @@ temp_pkg_dir() do project_path Pkg.test() end end + m = Pkg.Types.read_manifest(joinpath(dir, "monorepo", "Manifest.toml")) + @test haskey(m, UUID("dd0d8fba-d7c4-4f8e-a2bb-3a090b3e34f2")) # B subpackage + @test haskey(m, UUID("4ee78ca3-4e78-462f-a078-747ed543fa86")) # C subpackage + @test haskey(m, UUID("bf733257-898a-45a0-b2f2-c1c188bdd870")) # D subpackage, but no direct dependency + pkgC = m[UUID("4ee78ca3-4e78-462f-a078-747ed543fa86")] + @test haskey(pkgC.deps, "D") cd(joinpath(dir, "monorepo")) do with_current_env() do Pkg.develop(path="packages/C") @@ -36,6 +42,19 @@ temp_pkg_dir() do project_path Pkg.test() end end + # now test removing a dependency from subpackage correctly updates root manifest + cd(joinpath(dir, "monorepo", "packages", "C")) do + with_current_env() do + Pkg.rm("D") + Pkg.test() + end + end + m = Pkg.Types.read_manifest(joinpath(dir, "monorepo", "Manifest.toml")) + # currently, we don't prune dependencies from the root manifest since when rm-ing a dep + # in a subpackage, we don't also do a full resolve at the root level + @test_broken !haskey(m, UUID("bf733257-898a-45a0-b2f2-c1c188bdd870")) # D subpackage, but no direct dependency + pkgC = m[UUID("4ee78ca3-4e78-462f-a078-747ed543fa86")] + @test !haskey(pkgC.deps, "D") end end end