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:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c1af9b7ff78ef619e400492c4e98711a9e3a1014
         | 
| 4 | 
            +
              data.tar.gz: 897349bef78c52a54a97759a4b1dfb66d82c235e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 49de33216f17a4a87460689156ad783291c73821501e89feb2da7347677474d2828742c5488a04621e34810be8cc6e20175810545e9f4bee895f3782a234c5df
         | 
| 7 | 
            +
              data.tar.gz: f0a266f0584d30542bcf4056069467986e3e0850f31b10ca90f25dc4ffd6211c529aff92f015e8092c94a46b95bbd111db31f7384ffa0fe00df6d144f516fb58
         | 
    
        data/config/locales/en.yml
    CHANGED
    
    | @@ -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. | 
| 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:  | 
| 14 | 
            +
            date: 2014-01-15 00:00:00.000000000 Z
         | 
| 15 15 | 
             
            dependencies:
         | 
| 16 16 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 17 17 | 
             
              name: i18n
         |