aboutsummaryrefslogtreecommitdiff
path: root/spec/03_contrib_spec.sh
blob: a3fce8eba24d3cf4e459ee01a65a4775400d98ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Describe 'contrib scripts'
    export PATH=$PWD/src:$PWD/contrib:$PATH
    export CPT_ROOT=$PWD/tests/03
    export CPT_PATH=$PWD/tests/repository
    export CPT_COMPRESS=''
    install_tmp() {
        CPT_HOOK='' ./src/cpt b -y contrib-dummy-pkg >/dev/null 2>&1
        CPT_HOOK='' ./src/cpt-install -y contrib-dummy-pkg >/dev/null 2>&1
        mkdir -p "$CPT_ROOT/tmp"
    }
    remove_tmp() { rm -rf "${CPT_ROOT:?}/var" "$CPT_ROOT/tmp" ;}
    BeforeAll install_tmp
    AfterAll remove_tmp

    Describe 'cpt-cat'
        firstpkg=$(getfirstpkg)
        It 'outputs the file contents in the given package directory'
            When run script ./contrib/cpt-cat "$firstpkg"
            The stdout should not eq ""
            The line 1 of stderr should eq "$(printf '\033[1mbuild:\033[m\n')"
        End
        It "uses the current directory for the package name if none is supplied (contrib-dummy-pkg)"
            cd "$CPT_PATH/contrib-dummy-pkg" || return 1
            When run script "$(command -v cpt-cat)"
            The stdout should not eq ""
            The line 1 of stderr should eq "$(printf '\033[1mbuild:\033[m\n')"
        End
        It "exits with error if the package isn't installed"
            When run script ./contrib/cpt-cat somerandompackage
            The stderr should eq "-> somerandompackage not installed"
            The status should be failure
        End
        It "prints usage information when called with --help"
            When run script ./contrib/cpt-cat --help
            The word 1 of stdout should eq "usage:"
            The status should be success
        End
        Parameters
            build
            checksums
            manifest
            version
        End
        It "outputs the given file contents in the given package directory ($1)"
            When run script ./contrib/cpt-cat "$firstpkg" "$1"
            The stdout should eq "$(cat "$CPT_ROOT/var/db/cpt/installed/$firstpkg/$1")"
            The stderr should eq "$(printf '\033[1m%s:\033[m\n' "$1")"
        End
        It "outputs the given file contents for the name of the current directory (contrib-dummy-pkg - $1)"
            cd "$CPT_PATH/contrib-dummy-pkg" || return 1
            When run script "$(command -v cpt-cat)" "" "$1"
            The stdout should eq "$(cat "$CPT_ROOT/var/db/cpt/installed/${PWD##*/}/$1")"
            The stderr should eq "$(printf '\033[1m%s:\033[m\n' "$1")"
        End
    End
    Describe 'cpt-depends'
        firstpkg=$(getfirstpkg)
        It "outputs the dependencies of the given package"
            When run script ./contrib/cpt-depends "$firstpkg"
            The stdout should eq "$(cat "$CPT_ROOT/var/db/cpt/installed/$firstpkg/depends" 2>/dev/null ||:)"
            The status should be success
        End
        It "uses the current directory for the package name if none is supplied (contrib-dummy-pkg)"
            cd "$CPT_PATH/contrib-dummy-pkg" || return 1
            When run script "$(command -v cpt-depends)"
            The stdout should eq "$(cat "$CPT_ROOT/var/db/cpt/installed/contrib-dummy-pkg/depends" 2>/dev/null ||:)"
            The status should be success
        End
        It "prints usage information when called with --help"
            When run script ./contrib/cpt-depends --help
            The word 1 of stdout should eq usage:
        End
    End
    Describe 'cpt-export'
        firstpkg=$(getfirstpkg)
        It "exports a tarball of the given package"
            cd "$CPT_ROOT/tmp" || return 1
            When run script "$(command -v cpt-export)" contrib-dummy-pkg
            The stdout should eq "tarball created in $CPT_ROOT/tmp/contrib-dummy-pkg#1-1.tar.gz"
        End
    End
End