zendesk_apps_support 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e6b4d54f6f3f3d669be6796aa70461a280760d8
4
- data.tar.gz: 787833b450289df21248a738a138432c69147f21
3
+ metadata.gz: c1af9b7ff78ef619e400492c4e98711a9e3a1014
4
+ data.tar.gz: 897349bef78c52a54a97759a4b1dfb66d82c235e
5
5
  SHA512:
6
- metadata.gz: 0bef1113beb700741e6f095babcf9abe835d9a9e19e5f4846f1422c147f1cdf8b7c2948c927bda5d7a87829066d4481e253d7e641fae22d2db5e9b9b41a6ebdb
7
- data.tar.gz: cf551e919001f36e59c84f1cb1a5fafa94a3b5770afb5b60a613ca29a279fe54f4212233e5f0de5dfb0a90ced05383f5bf156f4b6cea2341775c6949e4dc949c
6
+ metadata.gz: 49de33216f17a4a87460689156ad783291c73821501e89feb2da7347677474d2828742c5488a04621e34810be8cc6e20175810545e9f4bee895f3782a234c5df
7
+ data.tar.gz: f0a266f0584d30542bcf4056069467986e3e0850f31b10ca90f25dc4ffd6211c529aff92f015e8092c94a46b95bbd111db31f7384ffa0fe00df6d144f516fb58
@@ -27,6 +27,10 @@ en:
27
27
  invalid_location:
28
28
  one: '%{invalid_locations} is an invalid location.'
29
29
  other: '%{invalid_locations} are invalid locations.'
30
+ duplicate_location:
31
+ one: '%{duplicate_locations} is a duplicate location.'
32
+ other: '%{duplicate_locations} are duplicate locations.'
33
+ name_as_parameter_name: Can't call a parameter 'name'
30
34
  invalid_hidden_parameter:
31
35
  one: '%{invalid_params} is set to hidden and cannot be required.'
32
36
  other: '%{invalid_params} are set to hidden and cannot be required.'
@@ -63,6 +63,18 @@ parts:
63
63
  key: "txt.apps.admin.error.app_build.invalid_location.other"
64
64
  title: "App builder job: invalid locations"
65
65
  value: "%{invalid_locations} are invalid locations."
66
+ - translation:
67
+ key: "txt.apps.admin.error.app_build.duplicate_location.one"
68
+ title: "App builder job: duplicate locations"
69
+ value: "%{duplicate_locations} is a duplicate location."
70
+ - translation:
71
+ key: "txt.apps.admin.error.app_build.duplicate_location.other"
72
+ title: "App builder job: duplicate locations"
73
+ value: "%{duplicate_locations} are duplicate locations."
74
+ - translation:
75
+ key: "txt.apps.admin.error.app_build.name_as_parameter_name"
76
+ title: "App builder job: error message when developer names a parameter 'name'"
77
+ value: "Can't call a parameter 'name'"
66
78
  - translation:
67
79
  key: "txt.apps.admin.error.app_build.invalid_hidden_parameter.one"
68
80
  title: "App builder job: hidden parameters set to required"
@@ -21,11 +21,13 @@ module ZendeskAppsSupport
21
21
  errors << missing_keys_error(manifest)
22
22
  errors << default_locale_error(manifest, package)
23
23
  errors << invalid_location_error(manifest)
24
+ errors << duplicate_location_error(manifest)
24
25
  errors << invalid_version_error(manifest, package)
25
26
  errors << oauth_error(manifest)
26
27
  errors << parameters_error(manifest)
27
28
  errors << invalid_hidden_parameter_error(manifest)
28
29
  errors << invalid_type_error(manifest)
30
+ errors << name_as_parameter_name_error(manifest)
29
31
  errors.compact!
30
32
  end
31
33
  rescue MultiJson::DecodeError => e
@@ -89,6 +91,15 @@ module ZendeskAppsSupport
89
91
  end
90
92
  end
91
93
 
94
+ def duplicate_location_error(manifest)
95
+ locations = *manifest['location']
96
+ duplicate_locations = *locations.select { |location| locations.count(location) > 1 }.uniq
97
+
98
+ unless duplicate_locations.empty?
99
+ ValidationError.new(:duplicate_location, :duplicate_locations => duplicate_locations.join(', '), :count => duplicate_locations.length)
100
+ end
101
+ end
102
+
92
103
  def invalid_version_error(manifest, package)
93
104
  valid_to_serve = AppVersion::TO_BE_SERVED
94
105
  target_version = manifest['frameworkVersion']
@@ -102,6 +113,14 @@ module ZendeskAppsSupport
102
113
  end
103
114
  end
104
115
 
116
+ def name_as_parameter_name_error(manifest)
117
+ if manifest['parameters'].kind_of?(Array)
118
+ if manifest['parameters'].any? { |p| p['name'] == 'name' }
119
+ ValidationError.new(:name_as_parameter_name)
120
+ end
121
+ end
122
+ end
123
+
105
124
  def invalid_hidden_parameter_error(manifest)
106
125
  invalid_params = []
107
126
 
@@ -65,6 +65,16 @@ describe ZendeskAppsSupport::Validations::Manifest do
65
65
  locations_error.should_not be_nil
66
66
  end
67
67
 
68
+ it 'should have an error when there are duplicate locations' do
69
+ manifest = { 'location' => ['ticket_sidebar', 'ticket_sidebar'] }
70
+ manifest_file = mock('AppFile', :relative_path => 'manifest.json', :read => JSON.dump(manifest))
71
+ package = mock('Package', :files => [manifest_file])
72
+ errors = ZendeskAppsSupport::Validations::Manifest.call(package)
73
+
74
+ locations_error = errors.find { |e| e.to_s =~ /duplicate/ }
75
+ locations_error.should_not be_nil
76
+ end
77
+
68
78
  it 'should have an error when the version is not supported' do
69
79
  manifest = { 'frameworkVersion' => '0.7' }
70
80
  manifest_file = mock('AppFile', :relative_path => 'manifest.json', :read => JSON.dump(manifest))
@@ -129,6 +139,18 @@ describe ZendeskAppsSupport::Validations::Manifest do
129
139
  errors.map(&:to_s).should == ['App parameters must be an array.']
130
140
  end
131
141
 
142
+ it 'has an error when there is a parameter called "name"' do
143
+ parameter_hash = {
144
+ 'parameters' => [{
145
+ 'name' => 'name',
146
+ 'type' => 'text'
147
+ }]
148
+ }
149
+
150
+ errors = ZendeskAppsSupport::Validations::Manifest.call(create_package(parameter_hash))
151
+ errors.map(&:to_s).should == ["Can't call a parameter 'name'"]
152
+ end
153
+
132
154
  it "doesn't have an error with an array of app parameters" do
133
155
  parameter_hash = {
134
156
  'parameters' => [{
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_apps_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James A. Rosen
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-12-20 00:00:00.000000000 Z
14
+ date: 2014-01-15 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: i18n