@contentstack/datasync-manager 2.0.0 → 2.0.1
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.
- package/LICENSE +1 -1
- package/dist/api.js +4 -2
- package/dist/core/q.js +4 -2
- package/dist/util/index.js +1 -1
- package/dist/util/validations.js +2 -2
- package/package.json +6 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/workflows/codeql-analysis.yml +0 -68
- package/.github/workflows/jira.yml +0 -28
- package/.github/workflows/release.yml +0 -53
- package/.github/workflows/sast-scan.yml +0 -11
- package/.github/workflows/sca-scan.yml +0 -15
- package/.github/workflows/secrets-scan.yml +0 -11
- package/.releaserc +0 -9
- package/.talismanrc +0 -4
- package/CODEOWNERS +0 -1
- package/SECURITY.md +0 -27
- package/example/config.js +0 -60
- package/example/index.js +0 -30
- package/test/api.ts +0 -152
- package/test/core/filteredItems.ts +0 -58
- package/test/core/index.ts +0 -18
- package/test/core/inet.ts +0 -23
- package/test/core/q.ts +0 -42
- package/test/core/sync.ts +0 -19
- package/test/core/token-management.ts +0 -40
- package/test/dummy/api-responses/404.ts +0 -3
- package/test/dummy/api-responses/content-type.ts +0 -30
- package/test/dummy/api-responses/delete-asset.ts +0 -9
- package/test/dummy/api-responses/delete-content-type.ts +0 -6
- package/test/dummy/api-responses/delete-entry.ts +0 -9
- package/test/dummy/api-responses/delete.ts +0 -32
- package/test/dummy/api-responses/empty.ts +0 -7
- package/test/dummy/api-responses/entries.ts +0 -31
- package/test/dummy/api-responses/filter-items.ts +0 -32
- package/test/dummy/api-responses/global-field.ts +0 -175
- package/test/dummy/api-responses/markdown-content-type.ts +0 -202
- package/test/dummy/api-responses/markdown-entries.ts +0 -56
- package/test/dummy/api-responses/mixed.ts +0 -77
- package/test/dummy/api-responses/publish-asset.ts +0 -14
- package/test/dummy/api-responses/publish-entry.ts +0 -14
- package/test/dummy/api-responses/publish.ts +0 -35
- package/test/dummy/api-responses/references-content-type-2.ts +0 -240
- package/test/dummy/api-responses/references-content-type.ts +0 -272
- package/test/dummy/api-responses/references-entries.ts +0 -156
- package/test/dummy/api-responses/unpublish-asset.ts +0 -9
- package/test/dummy/api-responses/unpublish-entry.ts +0 -9
- package/test/dummy/api-responses/unpublish.ts +0 -26
- package/test/dummy/config.ts +0 -34
- package/test/dummy/connector-listener-instances.ts +0 -69
- package/test/dummy/filter-items.ts +0 -32
- package/test/dummy/plugins/myplugin1/index.js +0 -20
- package/test/dummy/plugins/myplugin2/index.js +0 -20
- package/test/dummy/references-content-type.ts +0 -340
- package/test/dummy/references-entry-expected.ts +0 -161
- package/test/dummy/references-entry.ts +0 -95
- package/test/index.ts +0 -330
- package/test/util/fs.ts +0 -92
- package/test/util/index.ts +0 -157
- package/test/util/log-save-filtered-items.ts +0 -42
- package/test/util/validations.ts +0 -158
- package/tslint.json +0 -53
package/test/util/validations.ts
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { cloneDeep, merge } from 'lodash'
|
|
2
|
-
import { config as internalConfig } from '../../src/config'
|
|
3
|
-
import { buildConfigPaths } from '../../src/util/build-paths'
|
|
4
|
-
import { setLogger } from '../../src/util/logger'
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
validateConfig,
|
|
8
|
-
validateItemStructure,
|
|
9
|
-
validateListener,
|
|
10
|
-
validateLogger,
|
|
11
|
-
} from '../../src/util/validations'
|
|
12
|
-
|
|
13
|
-
import { item as deletedAsset } from '../dummy/api-responses/delete-asset'
|
|
14
|
-
import { item as deletedContentType } from '../dummy/api-responses/delete-content-type'
|
|
15
|
-
import { item as deletedEntry } from '../dummy/api-responses/delete-entry'
|
|
16
|
-
import { item as publishedAsset } from '../dummy/api-responses/publish-asset'
|
|
17
|
-
import { item as publishedEntry } from '../dummy/api-responses/publish-entry'
|
|
18
|
-
import { item as unpublishedAsset } from '../dummy/api-responses/unpublish-asset'
|
|
19
|
-
import { item as unpublishedEntry } from '../dummy/api-responses/unpublish-entry'
|
|
20
|
-
|
|
21
|
-
import { config } from '../dummy/config'
|
|
22
|
-
import { /* assetConnector, contentConnector, */listener } from '../dummy/connector-listener-instances'
|
|
23
|
-
|
|
24
|
-
describe('validations', () => {
|
|
25
|
-
beforeAll(() => {
|
|
26
|
-
setLogger()
|
|
27
|
-
})
|
|
28
|
-
describe('validate config for errors', () => {
|
|
29
|
-
test('contentstack config key is undefined', () => {
|
|
30
|
-
const configs: any = cloneDeep(merge({}, internalConfig, config))
|
|
31
|
-
configs.paths = buildConfigPaths()
|
|
32
|
-
delete configs.contentstack
|
|
33
|
-
expect(() => {
|
|
34
|
-
validateConfig(configs)
|
|
35
|
-
}).toThrowError(/^Config 'contentstack' key cannot be undefined$/)
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
test('config contentstack does not have required - apiKey', () => {
|
|
39
|
-
const configs: any = cloneDeep(merge({}, internalConfig, config))
|
|
40
|
-
configs.paths = buildConfigPaths()
|
|
41
|
-
configs.contentstack = {}
|
|
42
|
-
expect(() => {
|
|
43
|
-
validateConfig(configs)
|
|
44
|
-
}).toThrowError(/^Config 'contentstack' should be of type object and have 'apiKey' and 'token'$/)
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
test('config contentstack does not have required - token', () => {
|
|
48
|
-
const configs: any = cloneDeep(merge({}, internalConfig, config))
|
|
49
|
-
configs.paths = buildConfigPaths()
|
|
50
|
-
delete configs.contentstack.deliveryToken
|
|
51
|
-
expect(() => {
|
|
52
|
-
validateConfig(configs)
|
|
53
|
-
}).toThrowError(/^Config 'contentstack' should be of type object and have 'apiKey' and 'token'$/)
|
|
54
|
-
})
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
describe('validate instance methods', () => {
|
|
58
|
-
|
|
59
|
-
test('listener does not have register()', () => {
|
|
60
|
-
const listenerClone = cloneDeep(listener)
|
|
61
|
-
delete listenerClone.register
|
|
62
|
-
expect(() => {
|
|
63
|
-
validateListener(listenerClone)
|
|
64
|
-
}).toThrowError("Missing required methods! Listener is missing 'register()'!")
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
test('custom logger', () => {
|
|
68
|
-
// tslint:disable-next-line: no-empty
|
|
69
|
-
// const logger = () => {}
|
|
70
|
-
function logger () {}
|
|
71
|
-
// tslint:disable-next-line: no-empty
|
|
72
|
-
logger.prototype.info = () => {}
|
|
73
|
-
// tslint:disable-next-line: no-empty
|
|
74
|
-
logger.prototype.warn = () => {}
|
|
75
|
-
// tslint:disable-next-line: no-empty
|
|
76
|
-
logger.prototype.log = () => {}
|
|
77
|
-
// tslint:disable-next-line: no-empty
|
|
78
|
-
logger.prototype.error = () => {}
|
|
79
|
-
// tslint:disable-next-line: no-empty
|
|
80
|
-
logger.prototype.debug = () => {}
|
|
81
|
-
const loggerInstance = new logger()
|
|
82
|
-
expect(validateLogger(loggerInstance)).toEqual(true)
|
|
83
|
-
})
|
|
84
|
-
})
|
|
85
|
-
|
|
86
|
-
describe('asset: content structure testing', () => {
|
|
87
|
-
test('proper: asset publish structure', () => {
|
|
88
|
-
expect(validateItemStructure(publishedAsset)).toEqual(true)
|
|
89
|
-
})
|
|
90
|
-
test('improper: asset publish structure', () => {
|
|
91
|
-
const publishedAssetClone = cloneDeep(publishedAsset)
|
|
92
|
-
delete publishedAssetClone.content_type_uid
|
|
93
|
-
expect(validateItemStructure(publishedAssetClone)).toEqual(false)
|
|
94
|
-
})
|
|
95
|
-
|
|
96
|
-
test('asset unpublish structure', () => {
|
|
97
|
-
expect(validateItemStructure(unpublishedAsset)).toEqual(true)
|
|
98
|
-
})
|
|
99
|
-
test('improper: asset unpublish structure', () => {
|
|
100
|
-
const unpublishedAssetClone = cloneDeep(unpublishedAsset)
|
|
101
|
-
delete unpublishedAssetClone.content_type_uid
|
|
102
|
-
expect(validateItemStructure(unpublishedAssetClone)).toEqual(false)
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
test('asset delete structure', () => {
|
|
106
|
-
expect(validateItemStructure(deletedAsset)).toEqual(true)
|
|
107
|
-
})
|
|
108
|
-
test('improper: asset delete structure', () => {
|
|
109
|
-
const deletedAssetClone = cloneDeep(deletedAsset)
|
|
110
|
-
delete deletedAssetClone.content_type_uid
|
|
111
|
-
expect(validateItemStructure(deletedAssetClone)).toEqual(false)
|
|
112
|
-
})
|
|
113
|
-
})
|
|
114
|
-
|
|
115
|
-
describe('entry: content structure testing', () => {
|
|
116
|
-
test('proper: entry publish structure', () => {
|
|
117
|
-
expect(validateItemStructure(publishedEntry)).toEqual(true)
|
|
118
|
-
})
|
|
119
|
-
test('improper: entry publish structure', () => {
|
|
120
|
-
const publishedEntryClone = cloneDeep(publishedEntry)
|
|
121
|
-
delete publishedEntryClone.content_type_uid
|
|
122
|
-
expect(validateItemStructure(publishedEntryClone)).toEqual(false)
|
|
123
|
-
})
|
|
124
|
-
|
|
125
|
-
test('entry unpublish structure', () => {
|
|
126
|
-
expect(validateItemStructure(unpublishedEntry)).toEqual(true)
|
|
127
|
-
})
|
|
128
|
-
test('improper: entry unpublish structure', () => {
|
|
129
|
-
const unpublishedEntryClone = cloneDeep(unpublishedEntry)
|
|
130
|
-
delete unpublishedEntryClone.content_type_uid
|
|
131
|
-
expect(validateItemStructure(unpublishedEntryClone)).toEqual(false)
|
|
132
|
-
})
|
|
133
|
-
|
|
134
|
-
test('entry delete structure', () => {
|
|
135
|
-
expect(validateItemStructure(deletedEntry)).toEqual(true)
|
|
136
|
-
})
|
|
137
|
-
test('improper: entry delete structure', () => {
|
|
138
|
-
const deletedEntryClone = cloneDeep(deletedEntry)
|
|
139
|
-
delete deletedEntryClone.content_type_uid
|
|
140
|
-
expect(validateItemStructure(deletedEntryClone)).toEqual(false)
|
|
141
|
-
})
|
|
142
|
-
})
|
|
143
|
-
|
|
144
|
-
describe('content type: content structure testing', () => {
|
|
145
|
-
test('proper: content_type delete structure', () => {
|
|
146
|
-
expect(validateItemStructure(deletedContentType)).toEqual(true)
|
|
147
|
-
})
|
|
148
|
-
test('improper: content_type delete structure', () => {
|
|
149
|
-
delete deletedContentType.content_type_uid
|
|
150
|
-
expect(validateItemStructure(deletedContentType)).toEqual(false)
|
|
151
|
-
})
|
|
152
|
-
test('improper: object structure', () => {
|
|
153
|
-
delete deletedContentType.type
|
|
154
|
-
expect(validateItemStructure(deletedContentType)).toEqual(false)
|
|
155
|
-
})
|
|
156
|
-
|
|
157
|
-
})
|
|
158
|
-
})
|
package/tslint.json
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "tslint:recommended",
|
|
3
|
-
"rules": {
|
|
4
|
-
"max-line-length": {
|
|
5
|
-
"options": [120]
|
|
6
|
-
},
|
|
7
|
-
"new-parens": true,
|
|
8
|
-
"no-arg": true,
|
|
9
|
-
"no-bitwise": true,
|
|
10
|
-
"no-conditional-assignment": true,
|
|
11
|
-
"no-consecutive-blank-lines": false,
|
|
12
|
-
"no-console": {
|
|
13
|
-
"severity": "warning",
|
|
14
|
-
"options": [
|
|
15
|
-
"debug",
|
|
16
|
-
"info",
|
|
17
|
-
"log",
|
|
18
|
-
"time",
|
|
19
|
-
"timeEnd",
|
|
20
|
-
"trace"
|
|
21
|
-
]
|
|
22
|
-
},
|
|
23
|
-
"no-empty-interface": true,
|
|
24
|
-
"only-arrow-functions": true,
|
|
25
|
-
"no-string-throw": true,
|
|
26
|
-
"no-unsafe-any": false,
|
|
27
|
-
"triple-equals": true,
|
|
28
|
-
"eofline": true,
|
|
29
|
-
"indent": [true, "spaces", 2],
|
|
30
|
-
"max-file-line-count": [true, 500],
|
|
31
|
-
"no-default-export": true,
|
|
32
|
-
"no-duplicate-imports": true,
|
|
33
|
-
"prefer-readonly": true,
|
|
34
|
-
"align": [true, "parameters", "statements"],
|
|
35
|
-
"class-name": true,
|
|
36
|
-
"file-name-casing": true,
|
|
37
|
-
"import-spacing": true,
|
|
38
|
-
"interface-name": [true, "always-prefix"],
|
|
39
|
-
"newline-before-return": true,
|
|
40
|
-
"no-irregular-whitespace": true,
|
|
41
|
-
"no-trailing-whitespace": true,
|
|
42
|
-
"one-line": [true, "check-catch", "check-finally", "check-else"],
|
|
43
|
-
"one-variable-per-declaration": [true, "ignore-for-loop"],
|
|
44
|
-
"ordered-imports": true,
|
|
45
|
-
"semicolon": [true, "never"],
|
|
46
|
-
"quotemark": [true, "single", "avoid-escape", "avoid-template"]
|
|
47
|
-
},
|
|
48
|
-
"jsRules": {
|
|
49
|
-
"max-line-length": {
|
|
50
|
-
"options": [150]
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|