contentful-management 2.2.2 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -98,4 +98,16 @@ describe Contentful::Management::Environment do
98
98
  }
99
99
  end
100
100
  end
101
+
102
+ describe '#reload' do
103
+ it 'can reload' do
104
+ vcr('environment/find') {
105
+ environment = subject.find(testing)
106
+
107
+ vcr('environment/find_3') {
108
+ expect { environment.reload }.not_to raise_exception
109
+ }
110
+ }
111
+ end
112
+ end
101
113
  end
@@ -128,6 +128,15 @@ module Contentful
128
128
  end
129
129
  end
130
130
 
131
+ describe '.find' do
132
+ it 'finds a Contentful::Management::SpaceMembership' do
133
+ vcr('space_memberships/find_2') {
134
+ membership = subject.find(subject.all.first.id)
135
+ expect(membership).to be_a Contentful::Management::SpaceMembership
136
+ }
137
+ end
138
+ end
139
+
131
140
  describe '#destroy' do
132
141
  it 'deletes the membership' do
133
142
  vcr('space_memberships/delete') {
@@ -256,6 +256,82 @@ module Contentful
256
256
  expect(extension.id).to be_truthy
257
257
  }
258
258
  end
259
+
260
+ it 'can customize ui extension parameters' do
261
+ vcr('ui_extension/create_parameters') {
262
+ extension = client.ui_extensions(playground_space_id, 'master').create(extension: {
263
+ 'name' => 'test extension with parameters',
264
+ 'fieldTypes' => [{"type"=>"Symbol"}, {"type"=>"Text"}],
265
+ 'srcdoc' => "<!doctype html><html lang='en'><head><meta charset='UTF-8'/><title>Sample Editor Extension</title><link rel='stylesheet' href='https://contentful.github.io/ui-extensions-sdk/cf-extension.css'><script src='https://contentful.github.io/ui-extensions-sdk/cf-extension-api.js'></script></head><body><div id='content'></div><script>window.contentfulExtension.init(function (extension) {window.alert(extension);var value = extension.field.getValue();extension.field.setValue('Hello world!');extension.field.onValueChanged(function(value) {if (value !== currentValue) {extension.field.setValue('Hello world!');}});});</script></body></html>",
266
+ 'sidebar' => false,
267
+ 'parameters' => {
268
+ 'installation' => [
269
+ {
270
+ 'id' => 'devMode',
271
+ 'type' => 'Boolean',
272
+ 'name' => 'Run in development mode'
273
+ },
274
+ {
275
+ 'id' => 'retries',
276
+ 'type' => 'Number',
277
+ 'name' => 'Number of retries for API calls',
278
+ 'required' => true,
279
+ 'default' => 3
280
+ }
281
+ ],
282
+ 'instance' => [
283
+ {
284
+ 'id' => 'helpText',
285
+ 'type' => 'Symbol',
286
+ 'name' => 'Help text',
287
+ 'description' => 'Help text for a user to help them understand the editor'
288
+ },
289
+ {
290
+ 'id' => 'theme',
291
+ 'type' => 'Enum',
292
+ 'name' => 'Theme',
293
+ 'options' => [{'light' => 'Solarized light'}, {'dark' => 'Solarized dark'}],
294
+ 'default' => 'light',
295
+ 'required' => true
296
+ }
297
+ ]
298
+ }
299
+ })
300
+
301
+ expect(extension.parameters).to eq(
302
+ 'installation' => [
303
+ {
304
+ 'id' => 'devMode',
305
+ 'type' => 'Boolean',
306
+ 'name' => 'Run in development mode'
307
+ },
308
+ {
309
+ 'id' => 'retries',
310
+ 'type' => 'Number',
311
+ 'name' => 'Number of retries for API calls',
312
+ 'required' => true,
313
+ 'default' => 3
314
+ }
315
+ ],
316
+ 'instance' => [
317
+ {
318
+ 'id' => 'helpText',
319
+ 'type' => 'Symbol',
320
+ 'name' => 'Help text',
321
+ 'description' => 'Help text for a user to help them understand the editor'
322
+ },
323
+ {
324
+ 'id' => 'theme',
325
+ 'type' => 'Enum',
326
+ 'name' => 'Theme',
327
+ 'options' => [{'light' => 'Solarized light'}, {'dark' => 'Solarized dark'}],
328
+ 'default' => 'light',
329
+ 'required' => true
330
+ }
331
+ ]
332
+ )
333
+ }
334
+ end
259
335
  end
260
336
 
261
337
  describe '#destroy' do
@@ -5,7 +5,7 @@ require 'contentful/management/client'
5
5
  module Contentful
6
6
  module Management
7
7
  describe Webhook do
8
- let(:token) { '<ACCESS_TOKEN>' }
8
+ let(:token) { ENV.fetch('CF_TEST_CMA_TOKEN', '<ACCESS_TOKEN>') }
9
9
  let(:space_id) { 'bfsvtul0c41g' }
10
10
  let(:webhook_id) { '0rK8ZNEOWLgYnO5gaah2pp' }
11
11
  let!(:client) { Client.new(token) }
@@ -98,6 +98,52 @@ module Contentful
98
98
  expect(webhook.topics).to eq ['Entry.save', 'Entry.publish', 'ContentType.*']
99
99
  end
100
100
  end
101
+
102
+ it 'can create webhooks with specific filters' do
103
+ vcr('webhook/filters') do
104
+ webhook = described_class.create(
105
+ client,
106
+ 'facgnwwgj5fe',
107
+ name: 'test_ruby_filters',
108
+ url: 'https://www.example.com',
109
+ topics: ['Entry.*'],
110
+ filters: [{
111
+ equals: [{ doc: "sys.environment.sys.id" }, "some-env-id"]
112
+ }]
113
+ )
114
+
115
+ expect(webhook.filters[0]).to eq('equals' => [{ 'doc' => "sys.environment.sys.id"}, "some-env-id"])
116
+ end
117
+ end
118
+
119
+ it 'can create webhooks with specific transformations' do
120
+ vcr('webhook/transformation') do
121
+ webhook = described_class.create(
122
+ client,
123
+ 'facgnwwgj5fe',
124
+ name: 'test_ruby_filters',
125
+ url: 'https://www.example.com',
126
+ topics: ['Entry.*'],
127
+ transformation: {
128
+ method: 'POST',
129
+ contentType: 'application/vnd.contentful.management.v1+json; charset=utf-8',
130
+ body: {
131
+ entryId: "{ /payload/sys/id }",
132
+ fields: "{ /payload/fields }"
133
+ }
134
+ }
135
+ )
136
+
137
+ expect(webhook.transformation).to eq(
138
+ 'method' => 'POST',
139
+ 'contentType' => 'application/vnd.contentful.management.v1+json; charset=utf-8',
140
+ 'body' => {
141
+ 'entryId' => "{ /payload/sys/id }",
142
+ 'fields' => "{ /payload/fields }"
143
+ }
144
+ )
145
+ end
146
+ end
101
147
  end
102
148
 
103
149
  describe '#update' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contentful-management
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Protas
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-08-08 00:00:00.000000000 Z
13
+ date: 2018-08-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: http
@@ -600,6 +600,7 @@ files:
600
600
  - spec/fixtures/vcr_cassettes/environment/entry_proxy.yml
601
601
  - spec/fixtures/vcr_cassettes/environment/find.yml
602
602
  - spec/fixtures/vcr_cassettes/environment/find_2.yml
603
+ - spec/fixtures/vcr_cassettes/environment/find_3.yml
603
604
  - spec/fixtures/vcr_cassettes/environment/not_found.yml
604
605
  - spec/fixtures/vcr_cassettes/get_request.yml
605
606
  - spec/fixtures/vcr_cassettes/locale/all_for_space.yml
@@ -689,8 +690,10 @@ files:
689
690
  - spec/fixtures/vcr_cassettes/space_memberships/create.yml
690
691
  - spec/fixtures/vcr_cassettes/space_memberships/delete.yml
691
692
  - spec/fixtures/vcr_cassettes/space_memberships/find.yml
693
+ - spec/fixtures/vcr_cassettes/space_memberships/find_2.yml
692
694
  - spec/fixtures/vcr_cassettes/ui_extension/all.yml
693
695
  - spec/fixtures/vcr_cassettes/ui_extension/create.yml
696
+ - spec/fixtures/vcr_cassettes/ui_extension/create_parameters.yml
694
697
  - spec/fixtures/vcr_cassettes/ui_extension/delete.yml
695
698
  - spec/fixtures/vcr_cassettes/ui_extension/find.yml
696
699
  - spec/fixtures/vcr_cassettes/upload/associate_with_asset.yml
@@ -705,9 +708,11 @@ files:
705
708
  - spec/fixtures/vcr_cassettes/webhook/create_with_name_and_headers.yml
706
709
  - spec/fixtures/vcr_cassettes/webhook/create_with_taken_url.yml
707
710
  - spec/fixtures/vcr_cassettes/webhook/destroy.yml
711
+ - spec/fixtures/vcr_cassettes/webhook/filters.yml
708
712
  - spec/fixtures/vcr_cassettes/webhook/find.yml
709
713
  - spec/fixtures/vcr_cassettes/webhook/find_not_found.yml
710
714
  - spec/fixtures/vcr_cassettes/webhook/topics.yml
715
+ - spec/fixtures/vcr_cassettes/webhook/transformation.yml
711
716
  - spec/fixtures/vcr_cassettes/webhook/update.yml
712
717
  - spec/fixtures/vcr_cassettes/webhook_call/all.yml
713
718
  - spec/fixtures/vcr_cassettes/webhook_call/find.yml
@@ -981,6 +986,7 @@ test_files:
981
986
  - spec/fixtures/vcr_cassettes/environment/entry_proxy.yml
982
987
  - spec/fixtures/vcr_cassettes/environment/find.yml
983
988
  - spec/fixtures/vcr_cassettes/environment/find_2.yml
989
+ - spec/fixtures/vcr_cassettes/environment/find_3.yml
984
990
  - spec/fixtures/vcr_cassettes/environment/not_found.yml
985
991
  - spec/fixtures/vcr_cassettes/get_request.yml
986
992
  - spec/fixtures/vcr_cassettes/locale/all_for_space.yml
@@ -1070,8 +1076,10 @@ test_files:
1070
1076
  - spec/fixtures/vcr_cassettes/space_memberships/create.yml
1071
1077
  - spec/fixtures/vcr_cassettes/space_memberships/delete.yml
1072
1078
  - spec/fixtures/vcr_cassettes/space_memberships/find.yml
1079
+ - spec/fixtures/vcr_cassettes/space_memberships/find_2.yml
1073
1080
  - spec/fixtures/vcr_cassettes/ui_extension/all.yml
1074
1081
  - spec/fixtures/vcr_cassettes/ui_extension/create.yml
1082
+ - spec/fixtures/vcr_cassettes/ui_extension/create_parameters.yml
1075
1083
  - spec/fixtures/vcr_cassettes/ui_extension/delete.yml
1076
1084
  - spec/fixtures/vcr_cassettes/ui_extension/find.yml
1077
1085
  - spec/fixtures/vcr_cassettes/upload/associate_with_asset.yml
@@ -1086,9 +1094,11 @@ test_files:
1086
1094
  - spec/fixtures/vcr_cassettes/webhook/create_with_name_and_headers.yml
1087
1095
  - spec/fixtures/vcr_cassettes/webhook/create_with_taken_url.yml
1088
1096
  - spec/fixtures/vcr_cassettes/webhook/destroy.yml
1097
+ - spec/fixtures/vcr_cassettes/webhook/filters.yml
1089
1098
  - spec/fixtures/vcr_cassettes/webhook/find.yml
1090
1099
  - spec/fixtures/vcr_cassettes/webhook/find_not_found.yml
1091
1100
  - spec/fixtures/vcr_cassettes/webhook/topics.yml
1101
+ - spec/fixtures/vcr_cassettes/webhook/transformation.yml
1092
1102
  - spec/fixtures/vcr_cassettes/webhook/update.yml
1093
1103
  - spec/fixtures/vcr_cassettes/webhook_call/all.yml
1094
1104
  - spec/fixtures/vcr_cassettes/webhook_call/find.yml