cli icon indicating copy to clipboard operation
cli copied to clipboard

[Features][test-lib] Add message arg to the check function

Open cschot opened this issue 7 months ago • 1 comments

I would like to propose a change to the check function of the dev-container-features-test-lib script.

The function should take a message to display when the test fails, like other testing frameworks have.

The current function code is: https://github.com/devcontainers/cli/blob/c246645f97fba402c3b1b95983e573e92bcec464/src/spec-node/featuresCLI/utils.ts#L75-L91

I propose to add a message on $2 or the last argument. Any thoughts on this?

I would suggest something like this:

check() { 
     LABEL=$1 
     MESSAGE = $2 or ${!#}
 
     #
     # the rest of the function
     #
 } 

The new function should work like the examples below, and be backwards compatible

old: 
check "java version LTS installed as default" \
          grep "LTS" <(java --version)

new:
check "java version LTS installed as default" \
         grep "LTS" <(java --version) \
        "REASON: The installed version is: $(java --version)"

or 

check "java version LTS installed as default"  \
        "REASON: The installed version is: $(java --version)" \
        grep "LTS" <(java --version)

cschot avatar May 28 '25 00:05 cschot

I tested some combinations, but it looks difficult to add the MESSAGE arg to the check() function.

When using MESSAGE as $2 it is not backwards compatible, because $2 and up was the command to check.

When using MESSAGE as the last arg ( ${!#} ) it is also not backwards compatible, because the last arg was (a portion of) the command to check.

cschot avatar May 29 '25 18:05 cschot