Merge pull request #216 from myii/add-test-vimrc-generation

fix(vimrc): ensure `vimrc` state runs
This commit is contained in:
Niels Abspoel 2019-11-08 19:53:26 +01:00 committed by GitHub
commit 1a96921e89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 123 additions and 3 deletions

View File

@ -50,7 +50,8 @@ jobs:
## Define the rest of the matrix based on Kitchen testing
# Make sure the instances listed below match up with
# the `platforms` defined in `kitchen.yml`
- env: INSTANCE=default-debian-10-master-py3
# - env: INSTANCE=default-debian-10-master-py3
- env: INSTANCE=vimrc-debian-10-master-py3
# - env: INSTANCE=default-ubuntu-1804-master-py3
# - env: INSTANCE=default-centos-8-master-py3
# - env: INSTANCE=default-fedora-31-master-py3

View File

@ -192,3 +192,26 @@ suites:
verifier:
inspec_tests:
- path: test/integration/default
- name: vimrc
provisioner:
state_top:
base:
'*':
- users.vimrc
pillars:
top.sls:
base:
'*':
- users
- vimrc
pillars_from_files:
users.sls: test/salt/pillar/default.sls
vimrc.sls: test/salt/pillar/vimrc.sls
dependencies:
- name: vim
repo: git
source: https://github.com/saltstack-formulas/vim-formula.git
verifier:
inspec_tests:
- path: test/integration/default
- path: test/integration/vimrc

View File

@ -0,0 +1,50 @@
# InSpec Profile: `vimrc`
This shows the implementation of the `vimrc` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md).
## Verify a profile
InSpec ships with built-in features to verify a profile structure.
```bash
$ inspec check vimrc
Summary
-------
Location: vimrc
Profile: profile
Controls: 4
Timestamp: 2019-06-24T23:09:01+00:00
Valid: true
Errors
------
Warnings
--------
```
## Execute a profile
To run all **supported** controls on a local machine use `inspec exec /path/to/profile`.
```bash
$ inspec exec vimrc
..
Finished in 0.0025 seconds (files took 0.12449 seconds to load)
8 examples, 0 failures
```
## Execute a specific control from a profile
To run one control from the profile use `inspec exec /path/to/profile --controls name`.
```bash
$ inspec exec vimrc --controls package
.
Finished in 0.0025 seconds (files took 0.12449 seconds to load)
1 examples, 0 failures
```
See an [example control here](https://github.com/inspec/inspec/blob/master/examples/profile/controls/example.rb).

View File

@ -0,0 +1,11 @@
# frozen_string_literal: true
control 'vimrc is managed' do
title 'formula should manage .vimrc'
describe file('/home/vim_user/.vimrc') do
it { should be_owned_by 'vim_user' }
its('mode') { should cmp '0644' }
its('content') { should match(/syntax on/) }
end
end

View File

@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
name: vimrc
title: users formula
maintainer: SaltStack Formulas
license: Apache-2.0
summary: Verify that the `.vimrc` file is configured correctly for specified users
supports:
- platform-name: debian
- platform-name: ubuntu
- platform-name: centos
- platform-name: fedora
- platform-name: opensuse
- platform-name: suse
- platform-name: freebsd
- platform-name: amazon
- platform-name: arch

View File

@ -2,7 +2,6 @@
# vim: ft=yaml
---
users-formula:
use_vim_formula: true
lookup: # override the defauls in map.jinja
root_group: root

View File

@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
users-formula:
use_vim_formula: true
users:
## Minimal required pillar values
vim_user:
fullname: Vim User
manage_vimrc: true

View File

@ -1,3 +1,9 @@
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" File managed by Salt at <{{ source }}>.
" Your changes will be overwritten.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
{% raw -%}
" URL: http://vim.wikia.com/wiki/Example_vimrc
" Authors: http://vim.wikia.com/wiki/Vim_on_Freenode
" Description: A minimal, but feature rich, example .vimrc. If you are a
@ -158,3 +164,4 @@ nnoremap <C-L> :nohl<CR><C-L>
"------------------------------------------------------------
{%- endraw %}

View File

@ -1,6 +1,6 @@
{% from "users/map.jinja" import users with context %}
{% if users.use_vim_formula %}
{% if salt['pillar.get']('users-formula:use_vim_formula', False) %}
include:
- users