Skip to content

Commit c5a2520

Browse files
committed
Merge branch 'Cycle_2_Deterministic_entity_IDs'
2 parents ac36c16 + 02c7f1c commit c5a2520

21 files changed

+248
-12
lines changed

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"packages": [
33
"packages/*"
44
],
5-
"version": "3.0.5"
5+
"version": "3.0.6"
66
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"build": "lerna run build",
1313
"prepublishOnly": "npm run generate && ./generate/setClientVersion.ts && npm run build && npm run test",
1414
"publish": "lerna publish",
15-
"publish-next": "GENERATE_FROM_DEV=true lerna publish --dist-tag next"
15+
"publish-next": "GENERATE_FROM_DEV=true ACCOUNT_API_BASE_URL=http://account-api.lvh.me:3001 SITE_API_BASE_URL=http://site-api.lvh.me:3001 PUSHER_APP_KEY=12a5ddac68784be0fc59 PUSHER_CLUSTER=eu lerna publish --dist-tag next"
1616
},
1717
"author": "Stefano Verna <[email protected]>",
1818
"license": "MIT",

packages/cma-client-browser/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@datocms/cma-client-browser",
3-
"version": "3.0.5",
3+
"version": "3.0.6",
44
"description": "Browser client for DatoCMS REST Content Management API",
55
"keywords": [
66
"datocms",
@@ -28,7 +28,7 @@
2828
"url": "git+https://github.com/datocms/js-rest-api-clients.git"
2929
},
3030
"dependencies": {
31-
"@datocms/cma-client": "^3.0.5",
31+
"@datocms/cma-client": "^3.0.6",
3232
"@datocms/rest-client-utils": "^3.0.5"
3333
},
3434
"scripts": {

packages/cma-client-node/__tests__/field.test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { generateNewCmaClient } from '../../../jest-helpers/generateNewCmaClient';
2+
import { generateId } from '../../cma-client/src';
23

34
describe('field', () => {
45
it.concurrent('create, find, all, update, destroy', async () => {
@@ -34,4 +35,25 @@ describe('field', () => {
3435

3536
await client.fields.destroy(field);
3637
});
38+
39+
it.concurrent('create with explicit ID', async () => {
40+
const client = await generateNewCmaClient();
41+
42+
const newId = generateId();
43+
44+
const itemType = await client.itemTypes.create({
45+
name: 'Article',
46+
api_key: 'article',
47+
});
48+
49+
const field = await client.fields.create(itemType, {
50+
id: newId,
51+
label: 'Image',
52+
field_type: 'file',
53+
localized: false,
54+
api_key: 'image',
55+
validators: { required: {} },
56+
});
57+
expect(field.id).toEqual(newId);
58+
});
3759
});

packages/cma-client-node/__tests__/fieldset.test.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { generateNewCmaClient } from '../../../jest-helpers/generateNewCmaClient';
2+
import { generateId } from '../../cma-client/src';
23

34
describe('Fieldsets', () => {
45
it.concurrent('create, find, all, update, destroy, duplicate', async () => {
@@ -34,4 +35,26 @@ describe('Fieldsets', () => {
3435
await client.fieldsets.destroy(fieldset);
3536
expect(await client.fieldsets.list(itemType)).toHaveLength(0);
3637
});
38+
39+
it.concurrent('create with explicit ID', async () => {
40+
const client = await generateNewCmaClient();
41+
42+
const newId = generateId();
43+
44+
const itemType = await client.itemTypes.create({
45+
name: 'Article',
46+
api_key: 'item_type',
47+
});
48+
49+
const fieldset = await client.fieldsets.create(itemType, {
50+
id: newId,
51+
title: 'My fieldset',
52+
position: 1,
53+
hint: 'foo bar',
54+
collapsible: true,
55+
start_collapsed: true,
56+
});
57+
58+
expect(fieldset.id).toEqual(newId);
59+
});
3760
});

packages/cma-client-node/__tests__/item.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { generateNewCmaClient } from '../../../jest-helpers/generateNewCmaClient';
22
import { ApiError, buildBlockRecord, SchemaTypes } from '../src';
3+
import { generateId } from '../../cma-client/src';
34

45
describe('item', () => {
56
it.concurrent('bulk publish/unpublish/destroy works', async () => {
@@ -276,4 +277,29 @@ describe('item', () => {
276277
expect(updatedContent[0].attributes.text).toEqual('Updated Foo');
277278
expect(updatedContent[1].attributes.text).toEqual('Updated Bar');
278279
});
280+
281+
it.concurrent('create with explicit ID', async () => {
282+
const client = await generateNewCmaClient();
283+
284+
const newId = generateId();
285+
286+
const itemType = await client.itemTypes.create({
287+
name: 'Article',
288+
api_key: 'article',
289+
});
290+
291+
await client.fields.create(itemType.id, {
292+
label: 'Title',
293+
field_type: 'string',
294+
api_key: 'title',
295+
});
296+
297+
const item = await client.items.create({
298+
id: newId,
299+
title: 'My first blog post',
300+
item_type: itemType,
301+
});
302+
303+
expect(item.id).toEqual(newId);
304+
});
279305
});

packages/cma-client-node/__tests__/itemType.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { generateNewCmaClient } from '../../../jest-helpers/generateNewCmaClient';
2+
import { generateId } from '../../cma-client/src';
23

34
describe('item type', () => {
45
it.concurrent('create, find, all, duplicate, update, destroy', async () => {
@@ -44,4 +45,18 @@ describe('item type', () => {
4445

4546
await client.itemTypes.destroy(itemType.id);
4647
});
48+
49+
it.concurrent('create with explicit ID', async () => {
50+
const client = await generateNewCmaClient();
51+
52+
const newId = generateId();
53+
54+
const itemType = await client.itemTypes.create({
55+
id: newId,
56+
name: 'Article',
57+
api_key: 'article',
58+
});
59+
60+
expect(itemType.id).toEqual(newId);
61+
});
4762
});

packages/cma-client-node/__tests__/itemTypeFilters.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { generateNewCmaClient } from '../../../jest-helpers/generateNewCmaClient';
2+
import { generateId } from '../../cma-client/src';
23

34
describe('itemTypeFilters', () => {
45
it.concurrent('create, find, all, update, destroy', async () => {
@@ -37,4 +38,29 @@ describe('itemTypeFilters', () => {
3738
await client.itemTypeFilters.destroy(filter);
3839
expect(await client.itemTypeFilters.list()).toHaveLength(0);
3940
});
41+
42+
it.concurrent('create with explicit ID', async () => {
43+
const client = await generateNewCmaClient();
44+
45+
const newId = generateId();
46+
47+
const itemType = await client.itemTypes.create({
48+
name: 'Article',
49+
api_key: 'item_type',
50+
singleton: true,
51+
});
52+
53+
const filter = await client.itemTypeFilters.create({
54+
id: newId,
55+
name: 'My filter',
56+
shared: true,
57+
item_type: itemType,
58+
filter: {
59+
status: {
60+
eq: 'draft',
61+
},
62+
},
63+
});
64+
expect(filter.id).toEqual(newId);
65+
});
4066
});

packages/cma-client-node/__tests__/menuItem.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { LogLevel } from '../src';
22
import { generateNewCmaClient } from '../../../jest-helpers/generateNewCmaClient';
3+
import { generateId } from '../../cma-client/src';
34

45
describe('menu item', () => {
56
it.concurrent('create, find, list, update, destroy', async () => {
@@ -27,4 +28,18 @@ describe('menu item', () => {
2728
await client.menuItems.destroy(menuItem);
2829
expect(await client.menuItems.list()).toHaveLength(0);
2930
});
31+
32+
it.concurrent('create with explicit ID', async () => {
33+
const client = await generateNewCmaClient();
34+
35+
const newId = generateId();
36+
37+
const menuItem = await client.menuItems.create({
38+
id: newId,
39+
label: 'Browse Articles',
40+
position: 1,
41+
});
42+
43+
expect(menuItem.id).toEqual(newId);
44+
});
3045
});

packages/cma-client-node/__tests__/plugin.test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { generateNewCmaClient } from '../../../jest-helpers/generateNewCmaClient';
2+
import { generateId } from '../../cma-client/src';
23

34
describe('plugins', () => {
45
it.concurrent('create, find, all, duplicate, update, destroy', async () => {
@@ -15,4 +16,17 @@ describe('plugins', () => {
1516

1617
await client.plugins.destroy(plugin.id);
1718
});
19+
20+
it.concurrent('create with explicit ID', async () => {
21+
const client = await generateNewCmaClient();
22+
23+
const newId = generateId();
24+
25+
const plugin = await client.plugins.create({
26+
id: newId,
27+
package_name: 'datocms-plugin-tag-editor',
28+
});
29+
30+
expect(plugin.id).toEqual(newId);
31+
});
1832
});

0 commit comments

Comments
 (0)