diff --git a/src/authentication.jl b/src/authentication.jl index c48138b9f..0b6e65aae 100644 --- a/src/authentication.jl +++ b/src/authentication.jl @@ -506,10 +506,12 @@ _authentication(server::AbstractString; kwargs...) = _authentication(URIs.URI(se function _juliahub_project( project::Union{AbstractString, UUIDs.UUID, Nothing, Missing} )::Union{UUID, Nothing} - project = coalesce( - project, - get(ENV, "JULIAHUB_PROJECT_UUID", nothing), - ) + project_env = strip(get(ENV, "JULIAHUB_PROJECT_UUID", "")) + if isempty(project_env) + project_env = nothing + end + project = coalesce(project, project_env) + if isnothing(project) return nothing elseif isa(project, UUIDs.UUID) diff --git a/test/authentication.jl b/test/authentication.jl index 735e2523e..b525b46d5 100644 --- a/test/authentication.jl +++ b/test/authentication.jl @@ -7,12 +7,25 @@ @test JuliaHub._juliahub_project(nothing) === nothing @test JuliaHub._juliahub_project(missing) === nothing end + withenv("JULIAHUB_PROJECT_UUID" => "") do + @test JuliaHub._juliahub_project(uuid1) == UUIDs.UUID(uuid1) + @test_throws ArgumentError JuliaHub._juliahub_project("invalid") + @test_throws ArgumentError JuliaHub._juliahub_project("") + @test JuliaHub._juliahub_project(nothing) === nothing + @test JuliaHub._juliahub_project(missing) === nothing + end + withenv("JULIAHUB_PROJECT_UUID" => " ") do + @test JuliaHub._juliahub_project(missing) === nothing + end withenv("JULIAHUB_PROJECT_UUID" => uuid1) do @test JuliaHub._juliahub_project(uuid2) == UUIDs.UUID(uuid2) @test_throws ArgumentError JuliaHub._juliahub_project("invalid") @test JuliaHub._juliahub_project(nothing) === nothing @test JuliaHub._juliahub_project(missing) === UUIDs.UUID(uuid1) end + withenv("JULIAHUB_PROJECT_UUID" => " $(uuid1) ") do + @test JuliaHub._juliahub_project(missing) == UUIDs.UUID(uuid1) + end end @testset "JuliaHub.authenticate()" begin