Skip to content

Commit b00ba66

Browse files
authored
Merge pull request #382 from zendesk/mtsolakis/APPS-7218-password-param-warning-conditional
[APPS-7218] Show password parameter warning conditionally
2 parents 698234e + adfed4d commit b00ba66

File tree

4 files changed

+52
-31
lines changed

4 files changed

+52
-31
lines changed

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
zendesk_apps_support (4.43.0)
4+
zendesk_apps_support (4.43.1)
55
erubis
66
i18n (>= 1.7.1)
77
image_size (~> 2.0.2)

lib/zendesk_apps_support/validations/manifest.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def call(package, error_on_password_parameter: false)
2222
return [ValidationError.new(:missing_manifest)]
2323
end
2424

25-
package.warnings << password_parameter_warning unless error_on_password_parameter
25+
package.warnings << password_parameter_warning if !error_on_password_parameter && password_param_present?(package.manifest)
2626

2727
collate_manifest_errors(package, error_on_password_parameter)
2828
rescue JSON::ParserError => e
@@ -33,6 +33,10 @@ def call(package, error_on_password_parameter: false)
3333

3434
private
3535

36+
def password_param_present?(manifest)
37+
manifest.parameters.any? { |p| p.type == 'password' }
38+
end
39+
3640
def collate_manifest_errors(package, error_on_password_parameter)
3741
manifest = package.manifest
3842

@@ -214,7 +218,7 @@ def ban_framework_version(manifest)
214218

215219
def deprecate_password_parameter_type(manifest)
216220
secure_settings_link = 'https://developer.zendesk.com/documentation/apps/app-developer-guide/making-api-requests-from-a-zendesk-app/#using-secure-settings'
217-
if manifest.parameters.any? { |p| p.type == 'password' }
221+
if password_param_present?(manifest)
218222
ValidationError.new(:password_parameter_type_deprecated, link: secure_settings_link)
219223
end
220224
end
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module ZendeskAppsSupport
2-
VERSION = "4.43.0"
2+
VERSION = "4.43.1"
33
end

spec/validations/manifest_spec.rb

Lines changed: 44 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -814,37 +814,54 @@ def create_package(parameter_hash)
814814
end
815815
end
816816

817-
context 'when the error_on_password_parameter option is set to false' do
817+
context 'password parameter validations' do
818+
password_parameter_error_message = 'Password parameter type can no longer be used'
819+
password_parameter_warning_message = 'Password parameter type is deprecated and will not be accepted in the future'
820+
821+
context 'when the error_on_password_parameter option is set to false' do
822+
describe 'when the password parameter type is present' do
823+
it 'should be valid but add a warning about the password param type' do
824+
error_on_password_parameter = false
825+
@manifest_hash = {
826+
'parameters' => [
827+
'name' => 'a password param',
828+
'type' => 'password',
829+
]}
830+
package = create_package(@manifest_hash)
831+
errors = ZendeskAppsSupport::Validations::Manifest.call(package, error_on_password_parameter: error_on_password_parameter)
832+
833+
expect(errors.map(&:to_s).join()).not_to include(password_parameter_error_message)
834+
expect(package.warnings.join()).to include(password_parameter_warning_message)
835+
end
836+
end
818837

819-
it 'should be valid but add a warning about the password param type' do
820-
error_on_password_parameter = false
821-
@manifest_hash = {
822-
'parameters' => [
823-
'name' => 'a password param',
824-
'type' => 'password',
825-
]}
826-
package = create_package(@manifest_hash)
827-
errors = ZendeskAppsSupport::Validations::Manifest.call(package, error_on_password_parameter: error_on_password_parameter)
838+
describe 'when the password parameter type is not present' do
839+
it 'should be valid and add no warnings about a password parameter' do
840+
error_on_password_parameter = false
841+
@manifest_hash = {}
842+
package = create_package(@manifest_hash)
843+
errors = ZendeskAppsSupport::Validations::Manifest.call(package, error_on_password_parameter: error_on_password_parameter)
828844

829-
expect(errors.map(&:to_s).join()).not_to include("Password parameter type can no longer be used")
830-
expect(package.warnings.join()).to include("Password parameter type is deprecated and will not be accepted in the future")
845+
expect(errors.map(&:to_s).join()).not_to include(password_parameter_error_message)
846+
expect(package.warnings.join()).not_to include(password_parameter_warning_message)
847+
end
848+
end
831849
end
832-
end
833850

834-
context 'when the error_on_password_parameter option is set to true' do
835-
836-
it 'should not be valid with a password param type and add no warnings' do
837-
error_on_password_parameter = true
838-
@manifest_hash = {
839-
'parameters' => [
840-
'name' => 'a password param',
841-
'type' => 'password',
842-
]}
843-
package = create_package(@manifest_hash)
844-
errors = ZendeskAppsSupport::Validations::Manifest.call(package, error_on_password_parameter: error_on_password_parameter)
845-
846-
expect(errors.map(&:to_s).join()).to include("Password parameter type can no longer be used")
847-
expect(package.warnings.join()).not_to include("Password parameter type is deprecated and will not be accepted in the future")
851+
context 'when the error_on_password_parameter option is set to true' do
852+
it 'should not be valid with a password param type and add no warnings' do
853+
error_on_password_parameter = true
854+
@manifest_hash = {
855+
'parameters' => [
856+
'name' => 'a password param',
857+
'type' => 'password',
858+
]}
859+
package = create_package(@manifest_hash)
860+
errors = ZendeskAppsSupport::Validations::Manifest.call(package, error_on_password_parameter: error_on_password_parameter)
861+
862+
expect(errors.map(&:to_s).join()).to include(password_parameter_error_message)
863+
expect(package.warnings.join()).not_to include(password_parameter_warning_message)
864+
end
848865
end
849866
end
850867
end

0 commit comments

Comments
 (0)