grim/convey

Create a zip file for the docs

11 months ago, Gary Kramlich
c6695a974177
Create a zip file for the docs

Also renamed `convey-docs.yml` as it was getting deleted by the convey clean plan previously.

Testing Done:
Ran locally and verified the zip file was structured correctly.

Reviewed at https://reviews.imfreedom.org/r/2469/
// Convey
// Copyright 2016-2018 Gary Kramlich <grim@reaperworld.com>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
package environment
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestMapperNoOSWithValue(t *testing.T) {
result, err := Mapper("${FOO}", []string{"FOO=bar"})
assert.Nil(t, err)
assert.Equal(t, result, "bar")
}
func TestMapperNoOSWithoutValue(t *testing.T) {
result, err := Mapper("${FOO}", []string{"FOO="})
assert.Nil(t, err)
assert.Equal(t, result, "")
}
func TestMapperMultipleEquals(t *testing.T) {
result, err := Mapper("${FOO}", []string{"FOO=bar=baz"})
assert.Nil(t, err)
assert.Equal(t, result, "bar=baz")
}
func TestMapperOSWithValue(t *testing.T) {
os.Setenv("FOO", "bar")
defer os.Unsetenv("FOO")
result, err := Mapper("${FOO}", []string{"FOO"})
assert.Nil(t, err)
assert.Equal(t, result, "bar")
}
func TestMapperOSWithoutValue(t *testing.T) {
os.Unsetenv("FOO")
result, err := Mapper("${FOO}", []string{"FOO"})
assert.Nil(t, err)
assert.Equal(t, result, "")
}
func TestMapperPartialMatches(t *testing.T) {
os.Unsetenv("FOO")
os.Setenv("FOO", "bar")
os.Setenv("BAR", "bonk")
defer os.Unsetenv("FOO")
defer os.Unsetenv("BAR")
result, err := Mapper("${FOO}", []string{"FOOBAR"})
assert.Nil(t, err)
assert.Equal(t, result, "${FOO}")
result, err = Mapper("${BARBAZ}", []string{"BAR"})
assert.Nil(t, err)
assert.Equal(t, result, "${BARBAZ}")
}
func TestMapperRecursiveMatch(t *testing.T) {
os.Unsetenv("FOO")
result, err := Mapper("1${FOO}a", []string{"FOO=2${BAR}b", "BAR=3${BAZ}c", "BAZ=-ohhai!-"})
assert.Nil(t, err)
assert.Equal(t, result, "123-ohhai!-cba")
}
func TestMapperInfiniteDepthExpansion(t *testing.T) {
os.Unsetenv("FOO")
_, err := Mapper("${FOO}", []string{"FOO=$BAR", "BAR=$FOO"})
assert.EqualError(
t,
err,
"infinite environment mapping loop while expanding '${FOO}'",
)
}
func TestMapperInfiniteWidthExpansion(t *testing.T) {
os.Unsetenv("FOO")
_, err := Mapper("${FOO}", []string{"FOO=FOO${FOO}"})
assert.EqualError(
t,
err,
"infinite environment mapping loop while expanding '${FOO}'",
)
}
func TestMapperNestedCommandNotAltered(t *testing.T) {
os.Unsetenv("FOO")
result, err := Mapper("${FOO} $(./${BAR} $BAZ)", []string{"FOO=a", "BAR=b", "BAZ=c"})
assert.Nil(t, err)
assert.Equal(t, result, "a $(./b c)")
}