tests: improve tests on slug_ref function

This commit is contained in:
romain lespinasse
2019-11-06 21:22:48 +01:00
committed by Romain Lespinasse
parent 11ea6379cd
commit d89dc9cf15
5 changed files with 59 additions and 33 deletions

View File

@@ -1,3 +1,3 @@
#!/usr/bin/env sh
/sbin/bats ./
/sbin/bats ./tests

View File

@@ -1,6 +1,6 @@
name: ci
on: [push, pull_request]
on: push
jobs:
build:

View File

@@ -1,9 +1,7 @@
.PHONY: help tests
help: ## print this message
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-10s\033[0m %s\n", $$1, $$2}'
.PHONY: tests
tests: ## Run tests locally
docker run -w /workdir -v $(shell pwd):/workdir dduportal/bats:latest ./
docker run -w /workdir -v $(shell pwd):/workdir dduportal/bats:latest ./tests

View File

@@ -1,27 +0,0 @@
#!/usr/bin/env bats
@test "slug_ref" {
source entrypoint.sh
i=0
j=0
given[++i]="refs/head/master"
expected[++j]="master"
given[++i]="refs/head/feat/newFeature"
expected[++j]="newfeature"
given[++i]="refs/tags/v1.0"
expected[++j]="v1-0"
given[++i]="refs/head/awesome-Feature-Very-Very-Very-Very-Very-Very-Very-Long-moreThan63Characters"
expected[++j]="awesome-feature-very-very-very-very-very-very-very-long-moretha"
for i in "${!given[@]}"
do
actual="$(slug_ref \"${given[i]}\")"
echo "expected : [${expected[i]}], actual : [${actual}]"
[ "$actual" == "${expected[i]}" ]
done
}

55
tests/slug_ref.bats Normal file
View File

@@ -0,0 +1,55 @@
#!/usr/bin/env bats
@test "Slug master branch" {
test_sluf_ref \
"refs/heads/master" \
"master"
}
@test "Slug a feature branch" {
test_sluf_ref \
"refs/heads/feat/new_feature" \
"new-feature"
}
@test "Slug a fix branch" {
test_sluf_ref \
"refs/heads/fix/issue_number" \
"issue-number"
}
@test "Slug a simple tag" {
test_sluf_ref \
"refs/tags/v1.0.0" \
"v1-0-0"
}
@test "Slug a complex tag" {
test_sluf_ref \
"refs/tags/product@1.0.0-rc.2" \
"product-1-0-0-rc-2"
}
@test "Slug a reference with upper case letters" {
test_sluf_ref \
"refs/heads/New_Awesome_Product" \
"new-awesome-product"
}
@test "Slug a very long name" {
test_sluf_ref \
"refs/heads/an-awesome-Feature-Very-Very-Very-Very-Very-Very-Very-Long-moreThan63Characters" \
"an-awesome-feature-very-very-very-very-very-very-very-long-more"
}
# Load sluf_ref function
source entrypoint.sh > /dev/null 2>&1
test_sluf_ref() {
given="${1}"
expected="${2}"
actual="$(slug_ref \"${given}\")"
echo "expected : [${expected}], actual : [${actual}]"
[ "${actual}" == "${expected}" ]
}