|
| 1 | +/* |
| 2 | + * Copyright (c) 2020, salesforce.com, inc. |
| 3 | + * All rights reserved. |
| 4 | + * Licensed under the BSD 3-Clause license. |
| 5 | + * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause |
| 6 | + */ |
| 7 | + |
| 8 | +import { join, sep } from 'path'; |
| 9 | +import { TestSessionOptions } from '@salesforce/cli-plugins-testkit/lib/testSession'; |
| 10 | +import { MetadataType, registry } from '@salesforce/source-deploy-retrieve'; |
| 11 | +import { META_XML_SUFFIX } from '@salesforce/source-deploy-retrieve/lib/src/common'; |
| 12 | + |
| 13 | +export const SOURCE_BASE_RELATIVE_PATH = join('force-app', 'main', 'default'); |
| 14 | +export const DEB_NUTS_PATH = join(process.cwd(), 'test', 'nuts', 'digitalExperienceBundle'); |
| 15 | + |
| 16 | +export const TYPES = { |
| 17 | + DEB: registry.types.digitalexperiencebundle, |
| 18 | + DE: registry.types.digitalexperiencebundle.children?.types.digitalexperience as MetadataType, |
| 19 | + DEC: registry.types.digitalexperienceconfig, |
| 20 | + NETWORK: registry.types.network, |
| 21 | + CUSTOM_SITE: registry.types.customsite, |
| 22 | + APEX_PAGE: registry.types.apexpage, |
| 23 | + APEX_CLASS: registry.types.apexclass, |
| 24 | +} as const; |
| 25 | + |
| 26 | +export const DIR_NAMES = { |
| 27 | + PROJECT: 'project', |
| 28 | + STORE: 'store', |
| 29 | + COMPONENTS: 'components', |
| 30 | + MANIFESTS: 'manifests', |
| 31 | + NETWORKS: TYPES.NETWORK.directoryName, |
| 32 | + SITES: TYPES.CUSTOM_SITE.directoryName, |
| 33 | + DIGITAL_EXPERIENCE_CONFIGS: TYPES.DEC.directoryName, |
| 34 | + DIGITAL_EXPERIENCES: TYPES.DEB.directoryName, |
| 35 | + SITE: 'site', |
| 36 | + HOME: 'home', |
| 37 | + DEB_A: 'Capricorn_Coffee_A1', |
| 38 | + DEB_B: 'Capricorn_Coffee_B1', |
| 39 | + DE_VIEW: 'sfdc_cms__view', |
| 40 | + DE_ROUTE: 'sfdc_cms__route', |
| 41 | + VIEW_DOCUMENT_DETAIL: 'documentDetail', |
| 42 | + ROUTE_DOCUMENT_DETAIL: 'Document_Detail__c', |
| 43 | +} as const; |
| 44 | + |
| 45 | +export const DEBS_RELATIVE_PATH = join( |
| 46 | + SOURCE_BASE_RELATIVE_PATH, |
| 47 | + DIR_NAMES.DIGITAL_EXPERIENCES as string, |
| 48 | + DIR_NAMES.SITE |
| 49 | +); |
| 50 | +export const DEB_A_RELATIVE_PATH = join(DEBS_RELATIVE_PATH, DIR_NAMES.DEB_A); |
| 51 | +export const DEB_B_RELATIVE_PATH = join(DEBS_RELATIVE_PATH, DIR_NAMES.DEB_B); |
| 52 | + |
| 53 | +export const STORE_PATH = join(DEB_NUTS_PATH, DIR_NAMES.STORE); |
| 54 | +export const STORE_COMPONENTS_PATH = join(STORE_PATH, DIR_NAMES.COMPONENTS); |
| 55 | +export const STORE_MANIFESTS_PATH = join(STORE_PATH, DIR_NAMES.MANIFESTS); |
| 56 | + |
| 57 | +export const FULL_NAMES = { |
| 58 | + DEB_A: join(DIR_NAMES.SITE, DIR_NAMES.DEB_A), |
| 59 | + DEB_B: join(DIR_NAMES.SITE, DIR_NAMES.DEB_B), |
| 60 | + DE_VIEW_HOME_A: join(DIR_NAMES.SITE, `${DIR_NAMES.DEB_A}.${DIR_NAMES.DE_VIEW}`, DIR_NAMES.HOME), |
| 61 | + DE_VIEW_HOME_B: join(DIR_NAMES.SITE, `${DIR_NAMES.DEB_B}.${DIR_NAMES.DE_VIEW}`, DIR_NAMES.HOME), |
| 62 | + DE_VIEW_DOCUMENT_DETAIL_A: join( |
| 63 | + DIR_NAMES.SITE, |
| 64 | + `${DIR_NAMES.DEB_A}.${DIR_NAMES.DE_VIEW}`, |
| 65 | + DIR_NAMES.VIEW_DOCUMENT_DETAIL |
| 66 | + ), |
| 67 | + DE_ROUTE_DOCUMENT_DETAIL_A: join( |
| 68 | + DIR_NAMES.SITE, |
| 69 | + `${DIR_NAMES.DEB_A}.${DIR_NAMES.DE_ROUTE}`, |
| 70 | + DIR_NAMES.ROUTE_DOCUMENT_DETAIL |
| 71 | + ), |
| 72 | +} as const; |
| 73 | + |
| 74 | +export const FILE_NAMES = { |
| 75 | + CONTENT: { |
| 76 | + DE_MAIN: 'content.json', |
| 77 | + DE_FRENCH_VARIANT: 'fr.json', |
| 78 | + }, |
| 79 | + META: { |
| 80 | + DEB_A: `${DIR_NAMES.DEB_A}.${TYPES.DEB.suffix}${META_XML_SUFFIX}`, |
| 81 | + DEB_B: `${DIR_NAMES.DEB_B}.${TYPES.DEB.suffix}${META_XML_SUFFIX}`, |
| 82 | + DE: TYPES.DE.metaFileSuffix as string, // metaFileName = metaFileSuffix in case of DigitalExperience |
| 83 | + }, |
| 84 | +} as const; |
| 85 | + |
| 86 | +export const DIR_RELATIVE_PATHS = { |
| 87 | + NETWORKS: join(SOURCE_BASE_RELATIVE_PATH, DIR_NAMES.NETWORKS as string), |
| 88 | + SITES: join(SOURCE_BASE_RELATIVE_PATH, DIR_NAMES.SITES as string), |
| 89 | + DIGITAL_EXPERIENCE_CONFIGS: join(SOURCE_BASE_RELATIVE_PATH, DIR_NAMES.DIGITAL_EXPERIENCE_CONFIGS as string), |
| 90 | + DE_VIEW_A: join(DEB_A_RELATIVE_PATH, DIR_NAMES.DE_VIEW), |
| 91 | + DE_VIEW_B: join(DEB_B_RELATIVE_PATH, DIR_NAMES.DE_VIEW), |
| 92 | + DE_ROUTE_A: join(DEB_A_RELATIVE_PATH, DIR_NAMES.DE_ROUTE), |
| 93 | + DE_ROUTE_B: join(DEB_B_RELATIVE_PATH, DIR_NAMES.DE_ROUTE), |
| 94 | + DE_VIEW_HOME_A: join(DEB_A_RELATIVE_PATH, DIR_NAMES.DE_VIEW, DIR_NAMES.HOME), |
| 95 | + DE_VIEW_HOME_B: join(DEB_B_RELATIVE_PATH, DIR_NAMES.DE_VIEW, DIR_NAMES.HOME), |
| 96 | + DE_VIEW_DOCUMENT_DETAIL_A: join(DEB_A_RELATIVE_PATH, DIR_NAMES.DE_VIEW, DIR_NAMES.VIEW_DOCUMENT_DETAIL), |
| 97 | + DE_ROUTE_DOCUMENT_DETAIL_A: join(DEB_A_RELATIVE_PATH, DIR_NAMES.DE_ROUTE, DIR_NAMES.ROUTE_DOCUMENT_DETAIL), |
| 98 | +} as const; |
| 99 | + |
| 100 | +export const FILE_RELATIVE_PATHS = { |
| 101 | + DEB_META_A: join(DEB_A_RELATIVE_PATH, FILE_NAMES.META.DEB_A), |
| 102 | + DEB_META_B: join(DEB_B_RELATIVE_PATH, FILE_NAMES.META.DEB_B), |
| 103 | + DE_VIEW_HOME_META_A: join(DIR_RELATIVE_PATHS.DE_VIEW_HOME_A, FILE_NAMES.META.DE), |
| 104 | + DE_VIEW_HOME_META_B: join(DIR_RELATIVE_PATHS.DE_VIEW_HOME_B, FILE_NAMES.META.DE), |
| 105 | + DE_VIEW_HOME_COMPONENT_A: DIR_RELATIVE_PATHS.DE_VIEW_HOME_A, |
| 106 | + DE_VIEW_HOME_COMPONENT_B: DIR_RELATIVE_PATHS.DE_VIEW_HOME_B, |
| 107 | + DE_VIEW_HOME_CONTENT_A: join(DIR_RELATIVE_PATHS.DE_VIEW_HOME_A, FILE_NAMES.CONTENT.DE_MAIN), |
| 108 | + DE_VIEW_HOME_CONTENT_B: join(DIR_RELATIVE_PATHS.DE_VIEW_HOME_B, FILE_NAMES.CONTENT.DE_MAIN), |
| 109 | + DE_VIEW_HOME_FR_VARIANT_A: join(DIR_RELATIVE_PATHS.DE_VIEW_HOME_A, FILE_NAMES.CONTENT.DE_FRENCH_VARIANT), |
| 110 | + DE_VIEW_HOME_FR_VARIANT_B: join(DIR_RELATIVE_PATHS.DE_VIEW_HOME_B, FILE_NAMES.CONTENT.DE_FRENCH_VARIANT), |
| 111 | + DE_VIEW_DOCUMENT_DETAIL_COMPONENT_A: DIR_RELATIVE_PATHS.DE_VIEW_DOCUMENT_DETAIL_A, |
| 112 | + DE_VIEW_DOCUMENT_DETAIL_META_A: join(DIR_RELATIVE_PATHS.DE_VIEW_DOCUMENT_DETAIL_A, FILE_NAMES.META.DE), |
| 113 | + DE_VIEW_DOCUMENT_DETAIL_CONTENT_A: join(DIR_RELATIVE_PATHS.DE_VIEW_DOCUMENT_DETAIL_A, FILE_NAMES.CONTENT.DE_MAIN), |
| 114 | + DE_ROUTE_DOCUMENT_DETAIL_COMPONENT_A: DIR_RELATIVE_PATHS.DE_ROUTE_DOCUMENT_DETAIL_A, |
| 115 | + DE_ROUTE_DOCUMENT_DETAIL_META_A: join(DIR_RELATIVE_PATHS.DE_ROUTE_DOCUMENT_DETAIL_A, FILE_NAMES.META.DE), |
| 116 | + DE_ROUTE_DOCUMENT_DETAIL_CONTENT_A: join(DIR_RELATIVE_PATHS.DE_ROUTE_DOCUMENT_DETAIL_A, FILE_NAMES.CONTENT.DE_MAIN), |
| 117 | +} as const; |
| 118 | + |
| 119 | +export const STORE = { |
| 120 | + COMPONENTS: { |
| 121 | + DE_VIEW_DOCUMENT_DETAIL: join(STORE_COMPONENTS_PATH, DIR_NAMES.DE_VIEW, DIR_NAMES.VIEW_DOCUMENT_DETAIL), |
| 122 | + DE_ROUTE_DOCUMENT_DETAIL: join(STORE_COMPONENTS_PATH, DIR_NAMES.DE_ROUTE, DIR_NAMES.ROUTE_DOCUMENT_DETAIL), |
| 123 | + }, |
| 124 | + MANIFESTS: { |
| 125 | + ALL_DEBS: join(STORE_MANIFESTS_PATH, 'all-debs-package.xml'), |
| 126 | + ALL_DE: join(STORE_MANIFESTS_PATH, 'all-de-package.xml'), |
| 127 | + ALL_DE_OF_DEB_A: join(STORE_MANIFESTS_PATH, 'all-de-of-deb-a-package.xml'), |
| 128 | + FULL_SITE_DEB_A_AND_B: join(STORE_MANIFESTS_PATH, 'full-site-deb-a-and-b-package.xml'), |
| 129 | + JUST_DEB_A: join(STORE_MANIFESTS_PATH, 'just-deb-a-package.xml'), |
| 130 | + DE_VIEW_HOME_OF_DEB_A: join(STORE_MANIFESTS_PATH, 'de-view-home-of-deb-a-package.xml'), |
| 131 | + DE_DOCUMENT_DETAIL_PAGE_A: join(STORE_MANIFESTS_PATH, 'de-document-detail-page-a-package.xml'), |
| 132 | + EMPTY_PACKAGE_XML: join(STORE_MANIFESTS_PATH, 'empty-package.xml'), |
| 133 | + ALL_DEBS_SOURCE_PATH_GEN: 'all-debs-sourcepath-gen-package.xml', |
| 134 | + ALL_DEBS_METADATA_GEN: 'all-debs-metadata-gen-package.xml', |
| 135 | + }, |
| 136 | +} as const; |
| 137 | + |
| 138 | +export const METADATA = { |
| 139 | + ALL_DEBS: TYPES.DEB.name, |
| 140 | + ALL_DE: TYPES.DE.name, |
| 141 | + ALL_DE_OF_DEB_B: `${TYPES.DE.name}:${DIR_NAMES.SITE}${sep}${DIR_NAMES.DEB_B}.*`, |
| 142 | + FULL_SITE_DEB_A_AND_B: `${TYPES.DEB.name},${TYPES.DEC.name},${TYPES.NETWORK.name},${TYPES.CUSTOM_SITE.name}`, |
| 143 | + JUST_DEB_B: `${TYPES.DEB.name}:${FULL_NAMES.DEB_B}`, |
| 144 | + DE_VIEW_HOME_OF_DEB_B: `${TYPES.DE.name}:${FULL_NAMES.DE_VIEW_HOME_B}`, |
| 145 | + DE_DOCUMENT_DETAIL_PAGE_A: `${TYPES.DE.name}:${FULL_NAMES.DE_VIEW_DOCUMENT_DETAIL_A},${TYPES.DE.name}:${FULL_NAMES.DE_ROUTE_DOCUMENT_DETAIL_A}`, |
| 146 | +}; |
| 147 | + |
| 148 | +export const TEST_SESSION_OPTIONS: TestSessionOptions = { |
| 149 | + project: { |
| 150 | + sourceDir: join(DEB_NUTS_PATH, DIR_NAMES.PROJECT), |
| 151 | + }, |
| 152 | + devhubAuthStrategy: 'AUTO', |
| 153 | + scratchOrgs: [ |
| 154 | + { |
| 155 | + setDefault: true, |
| 156 | + config: join('config', 'project-scratch-def.json'), |
| 157 | + }, |
| 158 | + ], |
| 159 | +}; |
0 commit comments