Class: Conify::ManifestTest

Inherits:
Test
  • Object
show all
Defined in:
lib/conify/test/manifest_test.rb

Constant Summary collapse

OUTPUT_COMPLETION =
true

Instance Attribute Summary

Attributes inherited from Test

#data

Instance Method Summary collapse

Methods inherited from Test

#api_requires?, #env, #initialize, #run, #test, #url

Methods included from Helpers

#allow_user_response, #ask_for_conflux_creds, #ask_for_password, #ask_for_password_on_windows, #camelize, #display, #echo_off, #echo_on, #error, #exclusive_deep_merge, #format_with_bang, #host, #host_url, #kensa_manifest_name, #kensa_manifest_path, #manifest_content, #manifest_filename, #manifest_path, #manually_added_methods, #open_url, #running_on_a_mac?, #running_on_windows?, #site_url, #to_table, #with_tty

Constructor Details

This class inherits a constructor from Conify::Test

Instance Method Details

#callObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/conify/test/manifest_test.rb', line 7

def call
  test 'id key exists' do
    data.has_key?('id')
  end

  test 'id is a string' do
    data['id'].is_a?(String)
  end

  test 'id is not blank' do
    !data['id'].empty?
  end

  test 'api key exists' do
    data.has_key?('api')
  end

  test 'api is a hash' do
    data['api'].is_a?(Hash)
  end

  test 'api contains password' do
    data['api'].has_key?('password') && data['api']['password'] != ''
  end

  test 'api contains sso_salt' do
    data['api'].has_key?('sso_salt') && data['api']['sso_salt'] != ''
  end

  test 'api contains test url' do
    data['api'].has_key?('test')
  end

  test 'api contains production url' do
    data['api'].has_key?('production')
  end

  if data['api']['production'].is_a?(Hash)
    test 'production url uses SSL' do
      data['api']['production']['base_url'] =~ /^https:/
    end

    test 'sso url uses SSL' do
      data['api']['production']['sso_url'] =~ /^https:/
    end
  else
    test 'production url uses SSL' do
      data['api']['production'] =~ /^https:/
    end
  end

  if data['api'].has_key?('config_vars')
    test 'contains config_vars array' do
      data['api']['config_vars'].is_a?(Array)
    end

    test 'all config vars are uppercase strings' do
      data['api']['config_vars'].each do |k, v|
        if k =~ /^[A-Z][0-9A-Z_]+$/
          true
        else
          error "#{k.inspect} is not a valid ENV key"
        end
      end
    end

    test 'all config vars are prefixed with the addon id' do
      data['api']['config_vars'].each do |k|
        prefix = data['id'].upcase.gsub('-', '_')

        if k =~ /^#{prefix}_/
          true
        else
          error "#{k} is not a valid ENV key - must be prefixed with #{prefix}_"
        end
      end
    end
  end

end