Skip to content

Commit

Permalink
refactor: migrate wave type to shared folder type
Browse files Browse the repository at this point in the history
  • Loading branch information
scolladon committed May 10, 2023
1 parent d44ffe7 commit 7b35adb
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 32 deletions.
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
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
4 changes: 2 additions & 2 deletions src/service/botHandler.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
'use strict'
const WaveHandler = require('./waveHandler')
const ShareFolderHandler = require('./sharedFolderHandler')
const { fillPackageWithParameter } = require('../utils/packageHelper')
const { parse, sep } = require('path')

const BOT_TYPE = 'Bot'
const BOT_EXTENSION = 'bot'

class BotHandler extends WaveHandler {
class BotHandler extends ShareFolderHandler {
_getElementName() {
const parsedPath = this._getParsedPath()
const elementName = new Set([
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
'use strict'
const StandardHandler = require('./standardHandler')
const { fillPackageWithParameter } = require('../utils/packageHelper')
const { getWaveMetadata } = require('../metadata/metadataManager')
const { getSharedFolderMetadata } = require('../metadata/metadataManager')

class WaveHandler extends StandardHandler {
waveMetadata
class SharedFolderHandler extends StandardHandler {
sharedFolderMetadata

constructor(line, type, work, metadata) {
super(line, type, work, metadata)
this.suffixRegex = new RegExp(`\\.${this.ext}$`)
this.waveMetadata = getWaveMetadata(this.metadata)
this.sharedFolderMetadata = getSharedFolderMetadata(this.metadata)
}

_fillPackage(store) {
const type = this.waveMetadata.get(this.ext)
const type = this.sharedFolderMetadata.get(this.ext)
fillPackageWithParameter({
store,
type: type,
Expand All @@ -22,8 +22,8 @@ class WaveHandler extends StandardHandler {
}

_isProcessable() {
return super._isProcessable() || this.waveMetadata.has(this.ext)
return super._isProcessable() || this.sharedFolderMetadata.has(this.ext)
}
}

module.exports = WaveHandler
module.exports = SharedFolderHandler
8 changes: 4 additions & 4 deletions src/service/typeHandlerFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const LwcHandler = require('./lwcHandler')
const Standard = require('./standardHandler')
const SubCustomObject = require('./subCustomObjectHandler')
const ObjectTranslation = require('./ObjectTranslationHandler')
const Wave = require('./waveHandler')
const SharedFolder = require('./sharedFolderHandler')

const { getType } = require('../utils/typeUtils')

Expand All @@ -22,7 +22,7 @@ const classes = {
compactLayouts: SubCustomObject,
dashboards: InFolder,
digitalExperiences: InBundleHandler,
discovery: Wave,
discovery: SharedFolder,
documents: InFolder,
email: InFolder,
escalationRules: InFile,
Expand All @@ -35,7 +35,7 @@ const classes = {
listViews: SubCustomObject,
lwc: LwcHandler,
matchingRules: InFile,
moderation: Wave,
moderation: SharedFolder,
objects: CustomObject,
objectTranslations: ObjectTranslation,
profiles: InFile,
Expand All @@ -50,7 +50,7 @@ const classes = {
territory2Models: CustomObject,
translations: InFile,
validationRules: SubCustomObject,
wave: Wave,
wave: SharedFolder,
waveTemplates: InResource,
webLinks: SubCustomObject,
workflows: InFile,
Expand Down

0 comments on commit 7b35adb

Please sign in to comment.