Merge pull request #9810 from cli/andyfeller/testscript-extension
Add comprehensive testscript for gh ext commandset
This commit is contained in:
commit
14d339d9ba
2 changed files with 78 additions and 0 deletions
|
|
@ -54,6 +54,15 @@ func TestGPGKeys(t *testing.T) {
|
|||
testscript.Run(t, testScriptParamsFor(tsEnv, "gpg-key"))
|
||||
}
|
||||
|
||||
func TestExtensions(t *testing.T) {
|
||||
var tsEnv testScriptEnv
|
||||
if err := tsEnv.fromEnv(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
testscript.Run(t, testScriptParamsFor(tsEnv, "extension"))
|
||||
}
|
||||
|
||||
func TestIssues(t *testing.T) {
|
||||
var tsEnv testScriptEnv
|
||||
if err := tsEnv.fromEnv(); err != nil {
|
||||
|
|
|
|||
69
acceptance/testdata/extension/extension.txtar
vendored
Normal file
69
acceptance/testdata/extension/extension.txtar
vendored
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# Skip if Bash is not available given script extension
|
||||
[!exec:bash] skip
|
||||
|
||||
# Setup environment variables used for testscript
|
||||
env EXT_NAME=${SCRIPT_NAME}-${RANDOM_STRING}
|
||||
env EXT_SCRIPT=gh-${EXT_NAME}
|
||||
env REPO=gh-${EXT_NAME}
|
||||
|
||||
# Use gh as a credential helper
|
||||
exec gh auth setup-git
|
||||
|
||||
# Create local repository for extension
|
||||
exec gh extension create $EXT_NAME
|
||||
cd $REPO
|
||||
|
||||
# Setup v1 executable baseline for extension
|
||||
mv ../v1.sh $EXT_SCRIPT
|
||||
chmod 777 $EXT_SCRIPT
|
||||
exec git add $EXT_SCRIPT
|
||||
exec git commit -m 'Setup extension as v1'
|
||||
|
||||
# Upload local extension repository
|
||||
exec gh repo create $ORG/$REPO --private --source . --push
|
||||
|
||||
# Defer repo cleanup
|
||||
defer gh repo delete --yes $ORG/$REPO
|
||||
|
||||
# Verify extension shows up in search, sleep for indexing
|
||||
exec gh repo edit --add-topic gh-extension
|
||||
sleep 10
|
||||
exec gh extension search --owner $ORG $EXT_NAME
|
||||
stdout ${ORG}/${REPO}
|
||||
|
||||
# Verify repository can be installed as extension
|
||||
exec gh extension install $ORG/$REPO
|
||||
exec gh extension list
|
||||
stdout ${ORG}/${REPO}
|
||||
|
||||
# Verify v1 extension behavior before upgrade
|
||||
exec gh extension exec $EXT_NAME
|
||||
stdout 'gh ext create v1'
|
||||
|
||||
# Setup v2 executable upgrade for extension
|
||||
mv ../v2.sh $EXT_SCRIPT
|
||||
chmod 777 $EXT_SCRIPT
|
||||
exec git add $EXT_SCRIPT
|
||||
exec git commit -m 'Upgrade extension to v2'
|
||||
exec git push -u origin
|
||||
|
||||
# Verify v2 extension upgrade
|
||||
exec gh extension upgrade $EXT_NAME
|
||||
exec gh extension exec $EXT_NAME
|
||||
stdout 'gh ext upgrade v2'
|
||||
|
||||
# Verify extension can be removed
|
||||
exec gh extension remove $EXT_NAME
|
||||
! stdout ${ORG}/${REPO}
|
||||
|
||||
-- v1.sh --
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "gh ext create v1"
|
||||
|
||||
-- v2.sh --
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "gh ext upgrade v2"
|
||||
Loading…
Add table
Add a link
Reference in a new issue