Skip to content

Commit

Permalink
fix: handle ModerationRule and KeywordList with shared folder type (
Browse files Browse the repository at this point in the history
  • Loading branch information
scolladon authored May 11, 2023
1 parent 06ebc30 commit 770b1ba
Show file tree
Hide file tree
Showing 23 changed files with 611 additions and 1,112 deletions.
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

0 comments on commit 770b1ba

Please sign in to comment.