fisher/test/install.fish
Jorge Bucaran 54212e1cbc Fisherman v0.2.0
* Improved README, added links to screencasts, updated
documentation with new changes and fixed other typos and
composition errors.

* Removed `fisher update --cache` in favor of
`fisher --cache | fisher update` and
`fisher uninstall --all` in favor of
`fisher --cache | fisher uninstall`.

* Fisherman does not move initialization / configuration
files following the convention `name`.config.fish to
`$fisher_config/functions`, but to `$fisher_config/conf.d`
now and evaluates  each `*.config.fish` inside at shell
start as usual. Closes #13.

* Added `fisher --cache[=base]` option to retrieve contents
in `$fisher_cache`, eliminating flaky usage of `find(1)`.
Closes #11.

* Fisherman now generates information about plugins installed
via custom URLs. For the description, a shortened version of
the URL is used. For the URL the full URL is used. For tags,
the URL is fuzzily checked and tags such as _theme_, _plugin_,
_config_ and _omf_ are added. The tag _orphan_ is added by
default as well. Finally, the author is generated by
retrieving the e-mail or username of the author of the
first commit in the plugin's repository. Closes #9 and #14.

* Changed `--path-in-cache` to `--translate.` This function
translates an name or supported URL/URL variation into a path
inside `$fisher_cache`. This allows you to treat plugins
installed via custom URLs almost like regular plugins if they
are installed. Closes #8.

* Fixed a bug with `mktemp` failing on some systems.
Closes #7. Thanks @tobywf.

* Added [CODE_OF_CONDUCT][code_of_conduct]. Closes #6.

* Fisherman can now unload themes within the same shell,
without having to restart the session. Closes #5.

* Fisherman can now load themes within the same shell,
without having to restart the session using `exec fish`.
Shoddy themes, for example those failing to declare global
variables with the `-g` flag still require the session to
be reset. See [**related**][bobthefish-19]. Closes #4.

* Move `getopts` implementation to `share/getopts.awk`.
Closes #3.

* Support dots inside URIs in `fisher --validate`.
Closes #2.
2016-01-05 06:05:11 +09:00

76 lines
1.9 KiB
Fish

source $DIRNAME/helpers/fisher_mock_repos.fish
source $DIRNAME/helpers/fisher_mock_index.fish
source $DIRNAME/helpers/fisher_mock_config.fish
set -l path $DIRNAME/$TESTNAME.test(random)
set -l source $DIRNAME/fixtures/source
set -l index $path/INDEX
set -l names foo bar baz
function -S setup
mkdir -p $path
fisher_mock_repos $source/*
fisher_mock_index $source $names > $index
fisher_mock_config $path $index
fisher install $names[1] file://$source/$names[2..3] -q
end
function -S teardown
rm -rf $path
rm -rf $source/{$names}.git
end
test "install creates config directory if there is none"
-d $fisher_config
end
test "install creates cache directory if there is none"
-d $fisher_cache
end
test "adds installed plugins to fishfile"
(cat $fisher_config/fishfile | xargs) = "$names"
end
test "downloads plugin repos to cache"
(fisher --cache=base) = $names
end
test "download INDEX copy to the cache"
(cat $fisher_cache/.index) = (fisher_mock_index $source $names)
end
test "add completions/<plugin>.fish to completions directory"
(ls $fisher_config/completions) = {$names}.fish
end
for name in $names
test "add <plugin>.fish to functions/$name.fish directory"
-e $fisher_config/functions/$name.fish
end
for file in $fisher_cache/$name/functions/*.fish
test "add functions/*.fish to functions/"(basename $file)
-e $fisher_config/functions/(basename $file)
end
end
test "add config files to conf.d"
-e $fisher_config/conf.d/$name.config.fish
end
test "add init files to conf.d as <name>.init.config"
-e $fisher_config/conf.d/$name.init.config.fish
end
test "add manual pages to config/man/"
-d $fisher_config/man
end
end
test "install returns 1 if package can't be installed"
(fisher install -q -- "what"; echo $status) = 1
end