Skip to content

Commit 45b420f

Browse files
authored
Merge pull request #123 from github/kpaulisse-file-no-parameters
Create integration test for regressions and fix resources with no parameters
2 parents 34aca05 + 605f974 commit 45b420f

File tree

7 files changed

+53
-0
lines changed

7 files changed

+53
-0
lines changed

lib/octocatalog-diff/catalog-util/fileresources.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ def self._convert_file_resources(resources, compilation_dir, environment = 'prod
122122
# @return [Boolean] True of resource is convertible, false if not
123123
def self.resource_convertible?(resource)
124124
return true if resource['type'] == 'File' && \
125+
!resource['parameters'].nil? && \
125126
resource['parameters'].key?('source') && \
126127
!resource['parameters'].key?('content') && \
127128
resource['parameters']['source'] =~ %r{^puppet:///modules/([^/]+)/(.+)}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# regressions repo fixture
2+
3+
We occasionally encounter edge cases that don't deserve their entire fixture.
4+
5+
We'll add them here.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
:backends:
3+
- yaml
4+
:yaml:
5+
:datadir: /var/lib/puppet/environments/%{::environment}/hieradata
6+
:hierarchy:
7+
- common
8+
:merge_behavior: deeper
9+
:logger: console
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
classes:
3+
- file_no_parameters
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node default {
2+
hiera_include('classes')
3+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# https://github.com/github/octocatalog-diff/pull/122
2+
3+
class file_no_parameters {
4+
file { '/tmp/foo': }
5+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Miscellaneous regressions
2+
#
3+
# - file resource with no parameters
4+
# Inspired by https://github.com/github/octocatalog-diff/pull/122
5+
6+
# frozen_string_literal: true
7+
8+
require_relative 'integration_helper'
9+
10+
describe 'miscellaneous regressions' do
11+
before(:all) do
12+
@result = OctocatalogDiff::Integration.integration(
13+
spec_repo: 'regressions',
14+
spec_fact_file: 'facts.yaml',
15+
argv: [
16+
'--hiera-config', 'environments/production/hiera.yaml',
17+
'--hiera-path-strip', '/var/lib/puppet'
18+
]
19+
)
20+
end
21+
22+
it 'should run without an error' do
23+
expect(@result[:exitcode]).not_to eq(-1), "Internal error: #{OctocatalogDiff::Integration.format_exception(@result)}"
24+
expect(@result[:exitcode]).to eq(0), "Runtime error: #{@result[:logs]}"
25+
expect(@result[:diffs].size).to eq(0), @result[:diffs].map(&:inspect).join("\n")
26+
end
27+
end

0 commit comments

Comments
 (0)