Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: handle ModerationRule and KeywordList with shared folder type #594

Merged
merged 6 commits into from
May 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ Thanks for sending a pull request! Please make sure to have a look to the contri

closes #

- [ ] Jest test added to check the fix is applied.
- [ ] Jest tests added to cover the fix.
- [ ] E2E tests added to cover the fix.

# Any particular element that can be tested locally

Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/on-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,9 @@ jobs:

- name: Check outdated dependencies
run: yarn outdated
continue-on-error: true

- name: Audit dependencies
run: yarn audit
continue-on-error: true

megalinter:
runs-on: ubuntu-latest
Expand Down
10 changes: 10 additions & 0 deletions __tests__/integration/services.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,16 @@ const testContext = [
new Set(['EU.France']),
'Territory2',
],
[
'force-app/main/default/moderation/site.block.rule-meta.xml',
new Set(['site.block']),
'ModerationRule',
],
[
'force-app/main/default/moderation/site.block.keywords-meta.xml',
new Set(['site.block']),
'KeywordList',
],
[
'force-app/main/default/discovery/DiscoveryAIModelTest.model',
new Set(['DiscoveryAIModelTest']),
Expand Down
20 changes: 10 additions & 10 deletions __tests__/unit/lib/metadata/metadataManager.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const {
getDefinition,
getInFileAttributes,
getLatestSupportedVersion,
getWaveMetadata,
getSharedFolderMetadata,
isVersionSupported,
} = require('../../../../src/metadata/metadataManager')

Expand Down Expand Up @@ -106,7 +106,7 @@ describe(`test if metadata`, () => {
expect(otherInFileAttributes).toBe(inFileAttributes)
})

test('getWaveMetadata', async () => {
test('getSharedFolderMetadata', async () => {
// Arrange
const metadata = new Map([
[
Expand Down Expand Up @@ -139,19 +139,19 @@ describe(`test if metadata`, () => {
])

// Act
let waveMetadata = getWaveMetadata(metadata)
let sharedFolderMetadata = getSharedFolderMetadata(metadata)

// Assert
expect(waveMetadata.has('discovery')).toBe(false)
expect(waveMetadata.has('goal')).toBe(true)
expect(waveMetadata.has('model')).toBe(true)
expect(waveMetadata.get('goal')).toEqual('DiscoveryGoal')
expect(waveMetadata.get('model')).toEqual('DiscoveryAIModel')
expect(sharedFolderMetadata.has('discovery')).toBe(false)
expect(sharedFolderMetadata.has('goal')).toBe(true)
expect(sharedFolderMetadata.has('model')).toBe(true)
expect(sharedFolderMetadata.get('goal')).toEqual('DiscoveryGoal')
expect(sharedFolderMetadata.get('model')).toEqual('DiscoveryAIModel')

// Act
let otherWaveMetadata = getWaveMetadata(metadata)
let otherSharedFolderMetadata = getSharedFolderMetadata(metadata)

// Assert
expect(otherWaveMetadata).toBe(waveMetadata)
expect(otherSharedFolderMetadata).toBe(sharedFolderMetadata)
})
})
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict'
const WaveHandler = require('../../../../src/service/waveHandler')
const SharedFolderHandler = require('../../../../src/service/sharedFolderHandler')

const objectType = 'discovery'
const entityName = 'DiscoveryAIModelTest'
Expand All @@ -16,7 +16,7 @@ beforeEach(() => {
}
})

describe('Wavehandler', () => {
describe('SharedFolderHandler', () => {
let globalMetadata
beforeAll(async () => {
// eslint-disable-next-line no-undef
Expand All @@ -25,7 +25,7 @@ describe('Wavehandler', () => {

it('should add the metadata component under the right type to the package', async () => {
// Arrange
const sut = new WaveHandler(line, objectType, work, globalMetadata)
const sut = new SharedFolderHandler(line, objectType, work, globalMetadata)

// Act
await sut.handleAddition()
Expand Down
40 changes: 19 additions & 21 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,19 @@
},
"author": "Sebastien Colladon <[email protected]>",
"dependencies": {
"@oclif/command": "^1.8.23",
"@oclif/command": "^1.8.24",
"@oclif/config": "^1.18.8",
"@oclif/core": "^2.8.2",
"@oclif/core": "^2.8.5",
"@oclif/errors": "^1.3.6",
"@salesforce/command": "^5.3.5",
"@salesforce/core": "^3.34.7",
"@salesforce/command": "^5.3.7",
"@salesforce/core": "^3.36.0",
"fast-xml-parser": "^4.2.2",
"fs-extra": "^11.1.1",
"ignore": "^5.2.4",
"lodash": "^4.17.21",
"micromatch": "^4.0.5",
"tslib": "^2.5.0",
"xmlbuilder2": "^3.0.2"
"xmlbuilder2": "^3.1.1"
},
"license": "MIT",
"bugs": {
Expand Down Expand Up @@ -70,36 +70,34 @@
"upgrade:dependencies": "yarn yarn-upgrade-all"
},
"devDependencies": {
"@commitlint/cli": "^17.6.1",
"@commitlint/config-conventional": "^17.6.1",
"@commitlint/prompt-cli": "^17.6.1",
"@commitlint/cli": "^17.6.3",
"@commitlint/config-conventional": "^17.6.3",
"@commitlint/prompt-cli": "^17.6.3",
"@oclif/dev-cli": "^1.26.10",
"@oclif/plugin-help": "^5.2.9",
"@oclif/test": "^2.3.16",
"@salesforce/cli-plugins-testkit": "^3.3.3",
"@salesforce/dev-config": "^3.1.0",
"@oclif/test": "^2.3.19",
"@salesforce/cli-plugins-testkit": "^3.3.6",
"@salesforce/dev-config": "^4.0.1",
"@salesforce/ts-sinon": "^1.4.6",
"@stryker-mutator/core": "^6.4.2",
"@stryker-mutator/jest-runner": "^6.4.2",
"@swc/core": "^1.3.53",
"@types/chai": "^4.3.4",
"@swc/core": "^1.3.57",
"@types/chai": "^4.3.5",
"@types/mocha": "^10.0.1",
"@types/node": "^18.15.13",
"@typescript-eslint/eslint-plugin": "^5.59.0",
"@typescript-eslint/parser": "^5.59.0",
"@types/node": "^20.1.2",
"@typescript-eslint/eslint-plugin": "^5.59.5",
"@typescript-eslint/parser": "^5.59.5",
"chai": "^4.3.7",
"eslint": "^8.38.0",
"eslint": "^8.40.0",
"eslint-config-prettier": "^8.8.0",
"eslint-config-salesforce-typescript": "^1.1.1",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsdoc": "^43.0.7",
"eslint-plugin-prettier": "^4.2.1",
"husky": "^8.0.3",
"jest": "^29.5.0",
"lint-staged": "^13.2.1",
"lint-staged": "^13.2.2",
"mocha": "^10.2.0",
"nyc": "^15.1.0",
"prettier": "^2.8.7",
"prettier": "^2.8.8",
"prettier-eslint": "^15.0.1",
"shx": "^0.3.4",
"sinon": "^15.0.4",
Expand Down
19 changes: 10 additions & 9 deletions src/metadata/a48.json
Original file line number Diff line number Diff line change
Expand Up @@ -862,13 +862,6 @@
"suffix": "managedTopics",
"xmlName": "ManagedTopics"
},
{
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"directoryName": "userCriteria",
"inFolder": false,
Expand All @@ -880,8 +873,16 @@
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "rule",
"xmlName": "ModerationRule"
"content": [
{
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"suffix": "rule",
"xmlName": "ModerationRule"
}
]
},
{
"directoryName": "cmsConnectSource",
Expand Down
15 changes: 9 additions & 6 deletions src/metadata/metadataManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const _apiMap = new Map()
let _latestVersion = null
const describeMetadata = new Map()
const inFileMetadata = new Map()
const waveMetadata = new Map()
const sharedFolderMetadata = new Map()

const buildAPIMap = async () => {
if (_apiMap.size === 0) {
Expand Down Expand Up @@ -66,17 +66,20 @@ const getInFileAttributes = metadata =>
inFileMetadata
)

const getWaveMetadata = metadata =>
waveMetadata.size
? waveMetadata
const getSharedFolderMetadata = metadata =>
sharedFolderMetadata.size
? sharedFolderMetadata
: Array.from(metadata.values())
.filter(meta => meta.content)
.flatMap(elem => elem.content)
.reduce((acc, val) => acc.set(val.suffix, val.xmlName), waveMetadata)
.reduce(
(acc, val) => acc.set(val.suffix, val.xmlName),
sharedFolderMetadata
)

module.exports.getDefinition = getDefinition
module.exports.getInFileAttributes = getInFileAttributes
module.exports.getLatestSupportedVersion = getLatestSupportedVersion
module.exports.getWaveMetadata = getWaveMetadata
module.exports.getSharedFolderMetadata = getSharedFolderMetadata
module.exports.isPackable = isPackable
module.exports.isVersionSupported = isVersionSupported
19 changes: 10 additions & 9 deletions src/metadata/v46.json
Original file line number Diff line number Diff line change
Expand Up @@ -672,13 +672,6 @@
"suffix": "accountRelationshipShareRule",
"xmlName": "AccountRelationshipShareRule"
},
{
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"directoryName": "userCriteria",
"inFolder": false,
Expand All @@ -690,8 +683,16 @@
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "rule",
"xmlName": "ModerationRule"
"content": [
{
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"suffix": "rule",
"xmlName": "ModerationRule"
}
]
},
{
"directoryName": "cmsConnectSource",
Expand Down
19 changes: 10 additions & 9 deletions src/metadata/v47.json
Original file line number Diff line number Diff line change
Expand Up @@ -841,13 +841,6 @@
"suffix": "managedTopics",
"xmlName": "ManagedTopics"
},
{
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"directoryName": "userCriteria",
"inFolder": false,
Expand All @@ -859,8 +852,16 @@
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "rule",
"xmlName": "ModerationRule"
"content": [
{
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"suffix": "rule",
"xmlName": "ModerationRule"
}
]
},
{
"directoryName": "cmsConnectSource",
Expand Down
19 changes: 10 additions & 9 deletions src/metadata/v49.json
Original file line number Diff line number Diff line change
Expand Up @@ -855,13 +855,6 @@
"suffix": "managedTopics",
"xmlName": "ManagedTopics"
},
{
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"directoryName": "userCriteria",
"inFolder": false,
Expand All @@ -873,8 +866,16 @@
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "rule",
"xmlName": "ModerationRule"
"content": [
{
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"suffix": "rule",
"xmlName": "ModerationRule"
}
]
},
{
"directoryName": "cmsConnectSource",
Expand Down
19 changes: 10 additions & 9 deletions src/metadata/v50.json
Original file line number Diff line number Diff line change
Expand Up @@ -855,13 +855,6 @@
"suffix": "managedTopics",
"xmlName": "ManagedTopics"
},
{
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"directoryName": "userCriteria",
"inFolder": false,
Expand All @@ -873,8 +866,16 @@
"directoryName": "moderation",
"inFolder": false,
"metaFile": false,
"suffix": "rule",
"xmlName": "ModerationRule"
"content": [
{
"suffix": "keywords",
"xmlName": "KeywordList"
},
{
"suffix": "rule",
"xmlName": "ModerationRule"
}
]
},
{
"directoryName": "cmsConnectSource",
Expand Down
Loading