From 1e90009c462a44457726c3066f234e8c967d4c6f Mon Sep 17 00:00:00 2001 From: Zendesk-NathanBellette Date: Wed, 16 Feb 2022 14:42:51 +1100 Subject: [PATCH 1/2] Removed HTTP targets due to their EOL status and updated unit tests --- lib/zendesk_apps_support/app_requirement.rb | 2 +- spec/bookmarks_app/requirements.json | 19 +++++++++++++------ spec/validations/fixture/requirements.json | 19 +++++++++++++------ spec/validations/requirements_spec.rb | 6 +++--- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/lib/zendesk_apps_support/app_requirement.rb b/lib/zendesk_apps_support/app_requirement.rb index 06438417..1a2c5b01 100644 --- a/lib/zendesk_apps_support/app_requirement.rb +++ b/lib/zendesk_apps_support/app_requirement.rb @@ -6,7 +6,7 @@ class AppRequirement CUSTOM_OBJECTS_KEY = 'custom_objects' CUSTOM_OBJECTS_TYPE_KEY = 'custom_object_types' CUSTOM_OBJECTS_RELATIONSHIP_TYPE_KEY = 'custom_object_relationship_types' - TYPES = %w[automations channel_integrations custom_objects macros targets views ticket_fields + TYPES = %w[automations channel_integrations custom_objects macros views ticket_fields triggers user_fields organization_fields webhooks].freeze end end diff --git a/spec/bookmarks_app/requirements.json b/spec/bookmarks_app/requirements.json index cc7482f2..98555adb 100644 --- a/spec/bookmarks_app/requirements.json +++ b/spec/bookmarks_app/requirements.json @@ -1,10 +1,17 @@ { - "targets": { - "jira_story_target": { - "title": "blah", - "type": "jira_target", - "active": true, - "target_url": "http://example.org" + "webhooks": { + "new_webhook_1": { + "endpoint": "https://webhook.site/81a0f086-7a95-4654-b224-534c3a5bd319", + "http_method": "GET", + "name": "App Created Webhook 1", + "title": "my webhook", + "description": "Webhook for my really sweet app", + "request_format": "json", + "status": "active", + "signing_secret": { + "secret": "pvXR0btAdXdFazX8TPRqbGHZJFGmUs6pqAIKR46REk0", + "algorithm": "SHA256" + } } }, diff --git a/spec/validations/fixture/requirements.json b/spec/validations/fixture/requirements.json index 51f440b0..49bf9fda 100644 --- a/spec/validations/fixture/requirements.json +++ b/spec/validations/fixture/requirements.json @@ -1,10 +1,17 @@ { - "targets": { - "jira_story_target": { - "title": "blah", - "type": "jira_target", - "active": true, - "target_url": "http://example.org" + "webhooks": { + "new_webhook_1": { + "endpoint": "https://webhook.site/81a0f086-7a95-4654-b224-534c3a5bd319", + "http_method": "GET", + "name": "App Created Webhook 1", + "title": "my webhook", + "description": "Webhook for my really sweet app", + "request_format": "json", + "status": "active", + "signing_secret": { + "secret": "pvXR0btAdXdFazX8TPRqbGHZJFGmUs6pqAIKR46REk0", + "algorithm": "SHA256" + } } }, diff --git a/spec/validations/requirements_spec.rb b/spec/validations/requirements_spec.rb index 97c650a1..6e2ffe61 100644 --- a/spec/validations/requirements_spec.rb +++ b/spec/validations/requirements_spec.rb @@ -111,7 +111,7 @@ end context 'a requirement field missing a "key"' do - let(:requirements_string) { JSON.generate('targets' => { 'abc' => {} }) } + let(:requirements_string) { JSON.generate('webhooks' => { 'abc' => {} }) } it 'creates an error for missing required fields' do expect(errors.first.key).to eq(:missing_required_fields) @@ -172,10 +172,10 @@ end context 'many requirements are lacking required fields' do - let(:requirements_string) { JSON.generate('targets' => { 'abc' => {}, 'xyz' => {} }) } + let(:requirements_string) { JSON.generate('webhooks' => { 'abc' => {}, 'xyz' => {} }) } it 'creates an error for each of them' do - expect(errors.size).to eq(2) + expect(errors.size).to eq(10) end end From afd46285d876730d0c123964438abfdab2b371db Mon Sep 17 00:00:00 2001 From: Zendesk-NathanBellette Date: Thu, 17 Feb 2022 13:38:28 +1100 Subject: [PATCH 2/2] Add unit test to ensure having a requirement type of targets results in error Add unit test to ensure having a requirement type of targets results in an invalid_requirement_type error --- spec/validations/requirements_spec.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/validations/requirements_spec.rb b/spec/validations/requirements_spec.rb index 6e2ffe61..7c7810a0 100644 --- a/spec/validations/requirements_spec.rb +++ b/spec/validations/requirements_spec.rb @@ -187,6 +187,13 @@ end end + context 'there is a targets requirement type' do + let(:requirements_string) { JSON.generate('targets' => { 'abc' => {}, 'xyz' => {} }) } + it 'creates an error' do + expect(errors.first.key).to eq(:invalid_requirements_types) + end + end + context 'there are duplicate requirements' do let(:requirements_string) { '{ "a": { "b": 1, "b": 2 }}' }