chore: add testing for user commands
This commit is contained in:
parent
cb378a6d8c
commit
264f7897bf
5 changed files with 114 additions and 0 deletions
42
.github/workflows/ci.yml
vendored
Normal file
42
.github/workflows/ci.yml
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
name: Tests
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
unit_tests:
|
||||||
|
name: unit tests
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- os: ubuntu-22.04
|
||||||
|
url: https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.tar.gz
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- run: date +%F > todays-date
|
||||||
|
- name: Restore cache for today's nightly.
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
_neovim
|
||||||
|
key: ${{ runner.os }}-x64-${{ hashFiles('todays-date') }}
|
||||||
|
|
||||||
|
- name: Prepare
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.local/share/nvim/site/pack/vendor/start
|
||||||
|
git clone --depth 1 https://github.com/nvim-lua/plenary.nvim ~/.local/share/nvim/site/pack/vendor/start/plenary.nvim
|
||||||
|
|
||||||
|
ln -s $(pwd) ~/.local/share/nvim/site/pack/vendor/start
|
||||||
|
|
||||||
|
# sudo apt install go
|
||||||
|
test -d _neovim || {
|
||||||
|
mkdir -p _neovim
|
||||||
|
curl -sL ${{ matrix.url }} | tar xzf - --strip-components=1 -C "${PWD}/_neovim"
|
||||||
|
}
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: |
|
||||||
|
export PATH="${PWD}/_neovim/bin:${PATH}"
|
||||||
|
nvim --headless -u tests/minimal.vim -c "q"
|
||||||
|
make test
|
||||||
3
Makefile
3
Makefile
|
|
@ -5,3 +5,6 @@ lint:
|
||||||
|
|
||||||
fmt:
|
fmt:
|
||||||
stylua --config-path stylua.toml --glob 'lua/**/*.lua' -- lua
|
stylua --config-path stylua.toml --glob 'lua/**/*.lua' -- lua
|
||||||
|
|
||||||
|
test:
|
||||||
|
nvim --headless --noplugin -u tests/minimal.vim -c "PlenaryBustedDirectory tests/ {minimal_init = 'tests/minimal.vim'}"
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,12 @@ end
|
||||||
|
|
||||||
-- opens a url in the correct OS
|
-- opens a url in the correct OS
|
||||||
function M.open_url(url)
|
function M.open_url(url)
|
||||||
|
-- when running in test env store the url
|
||||||
|
if vim.g.test then
|
||||||
|
vim.g.OPENINGH_RESULT = url
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
-- order here matters
|
-- order here matters
|
||||||
-- wsl must come before win
|
-- wsl must come before win
|
||||||
-- wsl must come before linux
|
-- wsl must come before linux
|
||||||
|
|
|
||||||
21
tests/minimal.vim
Normal file
21
tests/minimal.vim
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
set rtp +=.
|
||||||
|
set rtp +=../plenary.nvim/
|
||||||
|
|
||||||
|
|
||||||
|
runtime! plugin/plenary.vim
|
||||||
|
|
||||||
|
|
||||||
|
set noswapfile
|
||||||
|
set nobackup
|
||||||
|
|
||||||
|
filetype indent off
|
||||||
|
set nowritebackup
|
||||||
|
set noautoindent
|
||||||
|
set nocindent
|
||||||
|
set nosmartindent
|
||||||
|
set indentexpr=
|
||||||
|
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require("plenary/busted")
|
||||||
|
EOF
|
||||||
42
tests/openingh_spec.lua
Normal file
42
tests/openingh_spec.lua
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
vim.g.test = true
|
||||||
|
|
||||||
|
describe("busted should run", function()
|
||||||
|
it("should start test", function()
|
||||||
|
vim.cmd([[packadd openingh.nvim]])
|
||||||
|
local status = require("plenary.reload").reload_module(".nvim")
|
||||||
|
assert.are.same(status, nil)
|
||||||
|
end)
|
||||||
|
|
||||||
|
it("require('openingh')", function()
|
||||||
|
local status = require("openingh")
|
||||||
|
assert.truthy(status)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
describe("openingh should set user commands", function()
|
||||||
|
it("should set :OpenInGHRepo", function()
|
||||||
|
local status = vim.fn.exists(":OpenInGHRepo")
|
||||||
|
assert.truthy(status)
|
||||||
|
end)
|
||||||
|
|
||||||
|
it("should set :OpenInGHFile", function()
|
||||||
|
local status = vim.fn.exists(":OpenInGHFile")
|
||||||
|
assert.truthy(status)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
describe("openingh should open", function()
|
||||||
|
it("repo on :OpenInGHRepo", function()
|
||||||
|
vim.cmd("OpenInGHRepo")
|
||||||
|
local status = vim.g.OPENINGH_RESULT
|
||||||
|
assert.truthy(status)
|
||||||
|
end)
|
||||||
|
|
||||||
|
it("file on :OpenInGHFile", function()
|
||||||
|
vim.cmd("e ./README.md")
|
||||||
|
vim.cmd("OpenInGHFile")
|
||||||
|
|
||||||
|
local status = vim.g.OPENINGH_RESULT
|
||||||
|
assert.truthy(status)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
Loading…
Add table
Reference in a new issue