Skip to content

Commit

Permalink
Merge pull request #216 from myii/add-test-vimrc-generation
Browse files Browse the repository at this point in the history
fix(vimrc): ensure `vimrc` state runs
  • Loading branch information
aboe76 authored Nov 8, 2019
2 parents 852dff2 + 86144be commit 1a96921
Show file tree
Hide file tree
Showing 9 changed files with 123 additions and 3 deletions.
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
23 changes: 23 additions & 0 deletions kitchen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
50 changes: 50 additions & 0 deletions test/integration/vimrc/README.md
Original file line number Diff line number Diff line change
@@ -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).
11 changes: 11 additions & 0 deletions test/integration/vimrc/controls/config_spec.rb
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions test/integration/vimrc/inspec.yml
Original file line number Diff line number Diff line change
@@ -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
1 change: 0 additions & 1 deletion test/salt/pillar/default.sls
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
# vim: ft=yaml
---
users-formula:
use_vim_formula: true
lookup: # override the defauls in map.jinja
root_group: root

Expand Down
11 changes: 11 additions & 0 deletions test/salt/pillar/vimrc.sls
Original file line number Diff line number Diff line change
@@ -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
7 changes: 7 additions & 0 deletions users/files/vimrc/vimrc
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -158,3 +164,4 @@ nnoremap <C-L> :nohl<CR><C-L>

"------------------------------------------------------------
{%- endraw %}
2 changes: 1 addition & 1 deletion users/vimrc.sls
Original file line number Diff line number Diff line change
@@ -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
Expand Down

0 comments on commit 1a96921

Please sign in to comment.