From a1ef7e57d9627f59000962111478d0846ab25d5c Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Fri, 1 Nov 2019 07:47:15 +0000 Subject: [PATCH 1/4] fix(vimrc): ensure `vimrc` state runs --- users/files/vimrc/vimrc | 7 +++++++ users/vimrc.sls | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/users/files/vimrc/vimrc b/users/files/vimrc/vimrc index fef9e87..15427ae 100644 --- a/users/files/vimrc/vimrc +++ b/users/files/vimrc/vimrc @@ -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 :nohl "------------------------------------------------------------ +{%- endraw %} diff --git a/users/vimrc.sls b/users/vimrc.sls index d8a378d..abb9274 100644 --- a/users/vimrc.sls +++ b/users/vimrc.sls @@ -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 From a263a62e7570d32d4a796538fc1720e20fa008a1 Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Fri, 1 Nov 2019 08:34:09 +0000 Subject: [PATCH 2/4] ci(kitchen+travis+inspec): add `vimrc` suite * Automated using https://github.com/myii/ssf-formula/pull/91 --- .travis.yml | 3 +- kitchen.yml | 23 ++++++++++++++ test/integration/vimrc/README.md | 50 +++++++++++++++++++++++++++++++ test/integration/vimrc/inspec.yml | 18 +++++++++++ 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 test/integration/vimrc/README.md create mode 100644 test/integration/vimrc/inspec.yml diff --git a/.travis.yml b/.travis.yml index e97a48a..2d8b46a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/kitchen.yml b/kitchen.yml index c3b6b00..9f237f8 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -190,3 +190,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 diff --git a/test/integration/vimrc/README.md b/test/integration/vimrc/README.md new file mode 100644 index 0000000..c8acc10 --- /dev/null +++ b/test/integration/vimrc/README.md @@ -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). diff --git a/test/integration/vimrc/inspec.yml b/test/integration/vimrc/inspec.yml new file mode 100644 index 0000000..cab2eb2 --- /dev/null +++ b/test/integration/vimrc/inspec.yml @@ -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 From 569e9276dbeea38f4920596502db75d64abbdc5e Mon Sep 17 00:00:00 2001 From: Felipe Zipitria Date: Wed, 30 Oct 2019 18:01:52 -0300 Subject: [PATCH 3/4] test(inspec): add test to check `.vimrc` file is generated properly --- test/integration/vimrc/controls/config_spec.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 test/integration/vimrc/controls/config_spec.rb diff --git a/test/integration/vimrc/controls/config_spec.rb b/test/integration/vimrc/controls/config_spec.rb new file mode 100644 index 0000000..95f62c2 --- /dev/null +++ b/test/integration/vimrc/controls/config_spec.rb @@ -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 From 86144befb9f98597464d9a10d45d820077a171e4 Mon Sep 17 00:00:00 2001 From: Felipe Zipitria Date: Wed, 30 Oct 2019 18:02:48 -0300 Subject: [PATCH 4/4] test(pillar): add test pillar to generate `.vimrc` file --- test/salt/pillar/default.sls | 1 - test/salt/pillar/vimrc.sls | 11 +++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 test/salt/pillar/vimrc.sls diff --git a/test/salt/pillar/default.sls b/test/salt/pillar/default.sls index 0bf7025..5f7400e 100644 --- a/test/salt/pillar/default.sls +++ b/test/salt/pillar/default.sls @@ -2,7 +2,6 @@ # vim: ft=yaml --- users-formula: - use_vim_formula: true lookup: # override the defauls in map.jinja root_group: root diff --git a/test/salt/pillar/vimrc.sls b/test/salt/pillar/vimrc.sls new file mode 100644 index 0000000..059b6f3 --- /dev/null +++ b/test/salt/pillar/vimrc.sls @@ -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