diff --git a/lib/processors/bundlers/moduleBundler.js b/lib/processors/bundlers/moduleBundler.js index 3f8d964f2..028a9d3b8 100644 --- a/lib/processors/bundlers/moduleBundler.js +++ b/lib/processors/bundlers/moduleBundler.js @@ -135,6 +135,7 @@ const log = getLogger("builder:processors:bundlers:moduleBundler"); * @param {string} [parameters.options.targetUi5CoreVersion] Optional semver compliant sap.ui.core project version, e.g '2.0.0'. This allows the bundler to make assumptions on available runtime APIs. Omit if the ultimate UI5 version at runtime is unknown or can't be determined. + * @param {@ui5/project/build/helpers/TaskUtil|object} [parameters.taskUtil] TaskUtil * @returns {Promise} * Promise resolving with module bundle resources */ @@ -152,14 +153,7 @@ export default function({resources, options: { ignoreMissingModules: false }, bundleOptions); - // Apply defaults without modifying the passed object - bundleDefinition = Object.assign({ - resolve: false, - resolveConditional: false, - renderer: false, - sort: true, - declareRawModules: false, - }, bundleDefinition); + // bundleDefinition's defaults get applied in the corresponding standard tasks const pool = new LocatorResourcePool({ ignoreMissingModules: bundleOptions.ignoreMissingModules diff --git a/lib/tasks/bundlers/generateBundle.js b/lib/tasks/bundlers/generateBundle.js index d1fbc748c..996e516e1 100644 --- a/lib/tasks/bundlers/generateBundle.js +++ b/lib/tasks/bundlers/generateBundle.js @@ -1,4 +1,5 @@ import moduleBundler from "../../processors/bundlers/moduleBundler.js"; +import {applyDefaultsToBundleDefinition} from "./utils/applyDefaultsToBundleDefinition.js"; import createModuleNameMapping from "./utils/createModuleNameMapping.js"; import ReaderCollectionPrioritized from "@ui5/fs/ReaderCollectionPrioritized"; @@ -96,7 +97,9 @@ export default async function({ } const coreVersion = taskUtil?.getProject("sap.ui.core")?.getVersion(); return combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}").then((resources) => { - const options = {bundleDefinition, bundleOptions}; + const options = { + bundleDefinition: applyDefaultsToBundleDefinition(bundleDefinition, taskUtil), bundleOptions + }; if (!optimize && taskUtil) { options.moduleNameMapping = createModuleNameMapping({resources, taskUtil}); } diff --git a/lib/tasks/bundlers/generateComponentPreload.js b/lib/tasks/bundlers/generateComponentPreload.js index 2effe8f42..d593d09a5 100644 --- a/lib/tasks/bundlers/generateComponentPreload.js +++ b/lib/tasks/bundlers/generateComponentPreload.js @@ -1,5 +1,6 @@ import path from "node:path"; import moduleBundler from "../../processors/bundlers/moduleBundler.js"; +import {applyDefaultsToBundleDefinition} from "./utils/applyDefaultsToBundleDefinition.js"; import {getLogger} from "@ui5/logger"; const log = getLogger("builder:tasks:bundlers:generateComponentPreload"); import {negateFilters} from "../../lbt/resources/ResourceFilterList.js"; @@ -148,7 +149,7 @@ export default async function({ return Promise.all(bundleDefinitions.filter(Boolean).map((bundleDefinition) => { log.verbose(`Generating ${bundleDefinition.name}...`); const options = { - bundleDefinition, + bundleDefinition: applyDefaultsToBundleDefinition(bundleDefinition, taskUtil), bundleOptions: { ignoreMissingModules: true, optimize: true diff --git a/lib/tasks/bundlers/generateLibraryPreload.js b/lib/tasks/bundlers/generateLibraryPreload.js index b87756c2a..ca6515b9b 100644 --- a/lib/tasks/bundlers/generateLibraryPreload.js +++ b/lib/tasks/bundlers/generateLibraryPreload.js @@ -1,6 +1,7 @@ import {getLogger} from "@ui5/logger"; const log = getLogger("builder:tasks:bundlers:generateLibraryPreload"); import moduleBundler from "../../processors/bundlers/moduleBundler.js"; +import {applyDefaultsToBundleDefinition} from "./utils/applyDefaultsToBundleDefinition.js"; import {negateFilters} from "../../lbt/resources/ResourceFilterList.js"; import createModuleNameMapping from "./utils/createModuleNameMapping.js"; @@ -265,6 +266,7 @@ export default async function({workspace, taskUtil, options: {skipBundles = [], if (coreVersion) { options.targetUi5CoreVersion = coreVersion; } + options.bundleDefinition = applyDefaultsToBundleDefinition(options.bundleDefinition, taskUtil); return moduleBundler({options, resources}); }; diff --git a/lib/tasks/bundlers/generateStandaloneAppBundle.js b/lib/tasks/bundlers/generateStandaloneAppBundle.js index bb8b8cb27..8cf08d3d7 100644 --- a/lib/tasks/bundlers/generateStandaloneAppBundle.js +++ b/lib/tasks/bundlers/generateStandaloneAppBundle.js @@ -2,6 +2,7 @@ import {getLogger} from "@ui5/logger"; const log = getLogger("builder:tasks:bundlers:generateStandaloneAppBundle"); import ReaderCollectionPrioritized from "@ui5/fs/ReaderCollectionPrioritized"; import moduleBundler from "../../processors/bundlers/moduleBundler.js"; +import {applyDefaultsToBundleDefinition} from "./utils/applyDefaultsToBundleDefinition.js"; import createModuleNameMapping from "./utils/createModuleNameMapping.js"; function getBundleDefinition(config) { @@ -139,24 +140,30 @@ export default async function({workspace, dependencies, taskUtil, options}) { } const bundleOptions = { - bundleDefinition: getBundleDefinition({ - name: "sap-ui-custom.js", - filters, - namespace, - preloadSection: true - }) + bundleDefinition: applyDefaultsToBundleDefinition( + getBundleDefinition({ + name: "sap-ui-custom.js", + filters, + namespace, + preloadSection: true, + }), + taskUtil + ), }; const bundleDbgOptions = { - bundleDefinition: getBundleDefinition({ - name: "sap-ui-custom-dbg.js", - filters, - namespace - }), + bundleDefinition: applyDefaultsToBundleDefinition( + getBundleDefinition({ + name: "sap-ui-custom-dbg.js", + filters, + namespace, + }), + taskUtil + ), bundleOptions: { - optimize: false + optimize: false, }, - moduleNameMapping: unoptimizedModuleNameMapping + moduleNameMapping: unoptimizedModuleNameMapping, }; if (coreVersion) { diff --git a/lib/tasks/bundlers/utils/applyDefaultsToBundleDefinition.js b/lib/tasks/bundlers/utils/applyDefaultsToBundleDefinition.js new file mode 100644 index 000000000..e2463b827 --- /dev/null +++ b/lib/tasks/bundlers/utils/applyDefaultsToBundleDefinition.js @@ -0,0 +1,31 @@ +/** + * Applies default values to bundleDefinitions + * + * @param {module:@ui5/builder/processors/bundlers/moduleBundler~ModuleBundleDefinition} bundleDefinition Module + * bundle definition + * @param {@ui5/project/build/helpers/TaskUtil|object} [taskUtil] TaskUtil + * + * @returns {module:@ui5/builder/processors/bundlers/moduleBundler~ModuleBundleDefinition} + */ +export function applyDefaultsToBundleDefinition(bundleDefinition, taskUtil) { + bundleDefinition.sections = bundleDefinition?.sections?.map((section) => { + const defaultValues = { + resolve: false, + resolveConditional: false, + renderer: false, + sort: true, + declareRawModules: false, + }; + + // Since specVersion: 4.0 "require" section starts loading asynchronously. + // If specVersion cannot be determined, the latest spec is taken into account. + // This is a breaking change in specVersion: 4.0 + if (section.mode === "require" && (!taskUtil || taskUtil.getProject().getSpecVersion().gte("4.0"))) { + defaultValues.async = true; + } + + return Object.assign(defaultValues, section); + }); + + return bundleDefinition; +} diff --git a/test/lib/processors/bundlers/moduleBundler.js b/test/lib/processors/bundlers/moduleBundler.js index dbcc36595..99138a074 100644 --- a/test/lib/processors/bundlers/moduleBundler.js +++ b/test/lib/processors/bundlers/moduleBundler.js @@ -45,16 +45,6 @@ test.serial("Builder returns single bundle", async (t) => { const bundleOptions = { "some": "option" }; - const effectiveBundleDefinition = { - // Defaults - "resolve": false, - "resolveConditional": false, - "renderer": false, - "sort": true, - "declareRawModules": false, - - "some": "definition" - }; const createdBundle = { name: "BundleName.js", @@ -103,7 +93,7 @@ test.serial("Builder returns single bundle", async (t) => { t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); - t.deepEqual(builder.createBundle.getCall(0).args[0], effectiveBundleDefinition, + t.deepEqual(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); t.deepEqual(builder.createBundle.getCall(0).args[1], { // default bundleOptions @@ -143,17 +133,6 @@ test.serial("Builder returns multiple bundles", async (t) => { "some": "option" }; - const effectiveBundleDefinition = { - // Defaults - "resolve": false, - "resolveConditional": false, - "renderer": false, - "sort": true, - "declareRawModules": false, - - "some": "definition" - }; - const createdBundles = [ { name: "BundleName1.js", @@ -226,7 +205,7 @@ test.serial("Builder returns multiple bundles", async (t) => { t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); - t.deepEqual(builder.createBundle.getCall(0).args[0], effectiveBundleDefinition, + t.deepEqual(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); t.deepEqual(builder.createBundle.getCall(0).args[1], { // default bundleOptions @@ -268,16 +247,6 @@ test.serial("bundleOptions default (no options passed)", async (t) => { const bundleDefinition = { "some": "definition" }; - const effectiveBundleDefinition = { - // Defaults - "resolve": false, - "resolveConditional": false, - "renderer": false, - "sort": true, - "declareRawModules": false, - - "some": "definition" - }; const createdBundle = { name: "BundleName.js", @@ -325,7 +294,7 @@ test.serial("bundleOptions default (no options passed)", async (t) => { t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); - t.deepEqual(builder.createBundle.getCall(0).args[0], effectiveBundleDefinition, + t.deepEqual(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); t.deepEqual(builder.createBundle.getCall(0).args[1], { // default bundleOptions @@ -361,17 +330,6 @@ test.serial("bundleOptions default (empty options passed)", async (t) => { }; const bundleOptions = {}; - const effectiveBundleDefinition = { - // Defaults - "resolve": false, - "resolveConditional": false, - "renderer": false, - "sort": true, - "declareRawModules": false, - - "some": "definition" - }; - const createdBundle = { name: "BundleName.js", content: "Bundle Content", @@ -400,7 +358,7 @@ test.serial("bundleOptions default (empty options passed)", async (t) => { t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); - t.deepEqual(builder.createBundle.getCall(0).args[0], effectiveBundleDefinition, + t.deepEqual(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); t.deepEqual(builder.createBundle.getCall(0).args[1], { // default bundleOptions @@ -434,17 +392,6 @@ test.serial("bundleOptions (all options passed)", async (t) => { ignoreMissingModules: true }; - const effectiveBundleDefinition = { - // Defaults - "resolve": false, - "resolveConditional": false, - "renderer": false, - "sort": true, - "declareRawModules": false, - - "some": "definition" - }; - const createdBundle = { name: "BundleName.js", content: "Bundle Content", @@ -473,7 +420,7 @@ test.serial("bundleOptions (all options passed)", async (t) => { t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); - t.deepEqual(builder.createBundle.getCall(0).args[0], effectiveBundleDefinition, + t.deepEqual(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); t.deepEqual(builder.createBundle.getCall(0).args[1], bundleOptions, "builder.createBundle should be called with bundleOptions"); @@ -502,16 +449,6 @@ test.serial("Passes ignoreMissingModules bundleOption to LocatorResourcePool", a "ignoreMissingModules": "foo" }; - const effectiveBundleDefinition = { - // Defaults - "resolve": false, - "resolveConditional": false, - "renderer": false, - "sort": true, - "declareRawModules": false, - - "some": "definition" - }; const createdBundle = { name: "BundleName.js", @@ -560,7 +497,7 @@ test.serial("Passes ignoreMissingModules bundleOption to LocatorResourcePool", a t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); - t.deepEqual(builder.createBundle.getCall(0).args[0], effectiveBundleDefinition, + t.deepEqual(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); t.deepEqual(builder.createBundle.getCall(0).args[1], effectiveBundleOptions, "builder.createBundle should be called with bundleOptions"); @@ -602,17 +539,6 @@ test.serial("Verbose Logging", async (t) => { "some": "option", }; - const effectiveBundleDefinition = { - // Defaults - "resolve": false, - "resolveConditional": false, - "renderer": false, - "sort": true, - "declareRawModules": false, - - "some": "definition" - }; - const createdBundle = { name: "Bundle Name", content: "Bundle Content", @@ -645,6 +571,6 @@ test.serial("Verbose Logging", async (t) => { t.deepEqual(log.verbose.getCall(0).args, ["Generating bundle:"]); t.deepEqual(log.verbose.getCall(1).args, - ["bundleDefinition: " + JSON.stringify(effectiveBundleDefinition, null, 2)]); + ["bundleDefinition: " + JSON.stringify(bundleDefinition, null, 2)]); t.deepEqual(log.verbose.getCall(2).args, ["bundleOptions: " + JSON.stringify(effectiveBundleOptions, null, 2)]); }); diff --git a/test/lib/tasks/bundlers/generateComponentPreload.js b/test/lib/tasks/bundlers/generateComponentPreload.js index 93fe021af..68e4f9ae2 100644 --- a/test/lib/tasks/bundlers/generateComponentPreload.js +++ b/test/lib/tasks/bundlers/generateComponentPreload.js @@ -88,6 +88,8 @@ test.serial("generateComponentPreload - one namespace", async (t) => { renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -180,6 +182,8 @@ test.serial("generateComponentPreload - one namespace - excludes", async (t) => renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -285,6 +289,8 @@ test.serial("generateComponentPreload - one namespace - excludes w/o namespace", renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -406,6 +412,8 @@ test.serial("generateComponentPreload - multiple namespaces - excludes", async ( renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -447,6 +455,8 @@ test.serial("generateComponentPreload - multiple namespaces - excludes", async ( renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -591,6 +601,8 @@ test.serial("generateComponentPreload - nested namespaces - excludes", async (t) renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true, } ] }, @@ -640,6 +652,8 @@ test.serial("generateComponentPreload - nested namespaces - excludes", async (t) renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -682,6 +696,8 @@ test.serial("generateComponentPreload - nested namespaces - excludes", async (t) renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, diff --git a/test/lib/tasks/bundlers/generateLibraryPreload.js b/test/lib/tasks/bundlers/generateLibraryPreload.js index d6f66d8e0..552643c65 100644 --- a/test/lib/tasks/bundlers/generateLibraryPreload.js +++ b/test/lib/tasks/bundlers/generateLibraryPreload.js @@ -71,9 +71,11 @@ test.serial("generateLibraryPreload", async (t) => { "!my/lib/**/*.support.js", ], mode: "preload", - renderer: true, resolve: false, + sort: true, resolveConditional: false, + renderer: true, + declareRawModules: false, } ] }, @@ -102,6 +104,8 @@ test.serial("generateLibraryPreload", async (t) => { renderer: false, resolve: false, resolveConditional: false, + sort: true, + declareRawModules: false } ] }, @@ -127,6 +131,8 @@ test.serial("generateLibraryPreload", async (t) => { renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true, } ] }, @@ -186,6 +192,9 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( mode: "raw", resolve: true, sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, declareModules: false }, { @@ -193,13 +202,23 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( filters: [ "sap/ui/core/Core.js" ], - resolve: true + resolve: true, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + async: true, + resolve: false, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, } ] }, @@ -223,13 +242,22 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + async: true, + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true } ] }, @@ -255,7 +283,12 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( "sap/ui/thirdparty/jquery.js", "sap/ui/thirdparty/jquery/*", "sap/ui/thirdparty/jqueryui/*" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, { filters: [ @@ -264,20 +297,33 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + declareRawModules: false, + renderer: false, + resolveConditional: false, }, { mode: "preload", filters: [ "sap/ui/core/Core.js" ], - resolve: true + resolve: true, + resolveConditional: false, + sort: true, + renderer: false, + declareRawModules: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + async: true, + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, } ] }, @@ -303,7 +349,12 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( "sap/ui/thirdparty/jquery.js", "sap/ui/thirdparty/jquery/*", "sap/ui/thirdparty/jqueryui/*" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, { filters: [ @@ -312,13 +363,22 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + async: true, + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, } ] }, @@ -342,6 +402,10 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( ], mode: "provided", resolve: true, + resolveConditional: false, + sort: true, + renderer: false, + declareRawModules: false, }, { filters: [ @@ -378,6 +442,8 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( renderer: true, resolve: false, resolveConditional: false, + sort: true, + declareRawModules: false, } ] }, @@ -420,6 +486,7 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t return { toString: () => "0.1", lte: () => true, + gte: sinon.stub().withArgs("4.0").returns(false) }; }, getVersion: () => "1.120.0" @@ -479,20 +546,32 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "preload", filters: [ "sap/ui/core/Core.js" ], - resolve: true + resolve: true, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + resolve: false, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, } ] }, @@ -515,15 +594,23 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t "ui5loader-autoconfig.js" ], mode: "raw", + declareRawModules: false, resolve: true, sort: true, - declareModules: false + declareModules: false, + renderer: false, + resolveConditional: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, } ] }, @@ -551,7 +638,12 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t "sap/ui/thirdparty/jquery.js", "sap/ui/thirdparty/jquery/*", "sap/ui/thirdparty/jqueryui/*" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, { filters: [ @@ -560,20 +652,32 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + declareRawModules: false, + renderer: false, + resolveConditional: false, }, { mode: "preload", filters: [ "sap/ui/core/Core.js" ], - resolve: true + resolve: true, + declareRawModules: false, + renderer: false, + resolveConditional: false, + sort: true, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + renderer: false, + declareRawModules: false, + resolve: false, + resolveConditional: false, + sort: true, } ] }, @@ -600,22 +704,35 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t "sap/ui/thirdparty/jquery.js", "sap/ui/thirdparty/jquery/*", "sap/ui/thirdparty/jqueryui/*" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, { filters: [ "ui5loader-autoconfig.js" ], mode: "raw", + declareModules: false, + declareRawModules: false, + renderer: false, resolve: true, + resolveConditional: false, sort: true, - declareModules: false }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, } ] }, @@ -640,7 +757,11 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t "sap/ui/core/Core.js", ], mode: "provided", + declareRawModules: false, + renderer: false, resolve: true, + resolveConditional: false, + sort: true }, { filters: [ @@ -677,6 +798,8 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t renderer: true, resolve: false, resolveConditional: false, + sort: true, + declareRawModules: false, } ] }, @@ -706,6 +829,8 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -732,6 +857,8 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -769,6 +896,7 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined return { toString: () => "0.1", lte: () => true, + gte: sinon.stub().withArgs("4.0").returns(false) }; }, getVersion: () => "1.120.0" @@ -820,22 +948,34 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined "ui5loader-autoconfig.js" ], mode: "raw", + declareModules: false, + declareRawModules: false, resolve: true, sort: true, - declareModules: false + resolveConditional: false, + renderer: false, }, { mode: "preload", filters: [ "sap/ui/core/Core.js" ], - resolve: true + resolve: true, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + resolve: false, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, } ] }, @@ -860,13 +1000,21 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + declareRawModules: false, + renderer: false, + resolveConditional: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, } ] }, @@ -894,7 +1042,12 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined "sap/ui/thirdparty/jquery.js", "sap/ui/thirdparty/jquery/*", "sap/ui/thirdparty/jqueryui/*" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, { filters: [ @@ -903,20 +1056,32 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + declareRawModules: false, + renderer: false, + resolveConditional: false, }, { mode: "preload", filters: [ "sap/ui/core/Core.js" ], - resolve: true + resolve: true, + declareRawModules: false, + renderer: false, + resolveConditional: false, + sort: true, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, } ] }, @@ -943,7 +1108,12 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined "sap/ui/thirdparty/jquery.js", "sap/ui/thirdparty/jquery/*", "sap/ui/thirdparty/jqueryui/*" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, { filters: [ @@ -952,13 +1122,21 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + declareRawModules: false, + renderer: false, + resolveConditional: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, } ] }, @@ -984,6 +1162,10 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined ], mode: "provided", resolve: true, + resolveConditional: false, + sort: true, + renderer: false, + declareRawModules: false, }, { filters: [ @@ -1020,6 +1202,8 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined renderer: true, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -1049,6 +1233,8 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined renderer: false, resolve: false, resolveConditional: false, + sort: true, + declareRawModules: false } ] }, @@ -1075,6 +1261,8 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -1111,6 +1299,7 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio return { toString: () => "2.4", lte: () => false, + gte: sinon.stub().withArgs("4.0").returns(false) }; }, getVersion: () => "1.120.0" @@ -1149,6 +1338,10 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio ], mode: "provided", resolve: true, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { filters: [ @@ -1182,9 +1375,11 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio "!sap/ui/core/plugin/LessSupport.js", ], mode: "preload", - renderer: true, resolve: false, + sort: true, resolveConditional: false, + renderer: true, + declareRawModules: false, } ] }, @@ -1214,6 +1409,8 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio renderer: false, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -1237,9 +1434,11 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio "!sap/ui/core/**/*-preload.support.js" ], mode: "preload", + declareRawModules: false, renderer: false, resolve: false, resolveConditional: false, + sort: true } ] }, @@ -1284,6 +1483,7 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio return { toString: () => "2.6", lte: () => false, + gte: sinon.stub().withArgs("4.0").returns(false) }; }, getVersion: () => "1.120.0" @@ -1325,6 +1525,10 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio ], mode: "provided", resolve: true, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { filters: [ @@ -1358,9 +1562,11 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio "!sap/ui/core/plugin/LessSupport.js", ], mode: "preload", - renderer: true, resolve: false, + sort: true, resolveConditional: false, + renderer: true, + declareRawModules: false, } ] }, @@ -1390,6 +1596,8 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio renderer: false, resolve: false, resolveConditional: false, + sort: true, + declareRawModules: false } ] }, @@ -1413,9 +1621,11 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio "!sap/ui/core/**/*-preload.support.js" ], mode: "preload", + declareRawModules: false, renderer: false, resolve: false, resolveConditional: false, + sort: true } ] }, @@ -1457,6 +1667,7 @@ test.serial("Error: Failed to resolve non-debug name", async (t) => { return { toString: () => "0.1", lte: () => true, + gte: sinon.stub().withArgs("4.0").returns(false) }; }, getVersion: () => "1.120.0" @@ -1541,6 +1752,8 @@ test.serial("generateLibraryPreload with excludes", async (t) => { renderer: true, resolve: false, resolveConditional: false, + declareRawModules: false, + sort: true } ] }, @@ -1603,9 +1816,11 @@ test.serial("generateLibraryPreload with invalid excludes", async (t) => { "!my/lib/**/*.support.js" ], mode: "preload", - renderer: true, resolve: false, + sort: true, resolveConditional: false, + renderer: true, + declareRawModules: false, } ] }, @@ -1654,6 +1869,7 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi return { toString: () => "0.1", lte: () => true, + gte: sinon.stub().withArgs("4.0").returns(false) }; }, getVersion: () => "2.0.0" @@ -1713,20 +1929,32 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + declareRawModules: false, + renderer: false, + resolveConditional: false }, { mode: "preload", filters: [ "sap/ui/core/Core.js" ], - resolve: true + resolve: true, + declareRawModules: false, + renderer: false, + resolveConditional: false, + sort: true }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true } ] }, @@ -1751,13 +1979,21 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, } ] }, @@ -1785,7 +2021,12 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi "sap/ui/thirdparty/jquery.js", "sap/ui/thirdparty/jquery/*", "sap/ui/thirdparty/jqueryui/*" - ] + ], + resolve: false, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { filters: [ @@ -1794,20 +2035,32 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "preload", filters: [ "sap/ui/core/Core.js" ], - resolve: true + resolve: true, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + resolve: false, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, } ] }, @@ -1834,7 +2087,12 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi "sap/ui/thirdparty/jquery.js", "sap/ui/thirdparty/jquery/*", "sap/ui/thirdparty/jqueryui/*" - ] + ], + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, { filters: [ @@ -1843,13 +2101,21 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi mode: "raw", resolve: true, sort: true, - declareModules: false + declareModules: false, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { mode: "require", filters: [ "sap/ui/core/Core.js" - ] + ], + resolve: false, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, } ] }, @@ -1875,6 +2141,10 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi ], mode: "provided", resolve: true, + sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false, }, { filters: [ @@ -1908,9 +2178,11 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi "!sap/ui/core/plugin/LessSupport.js", ], mode: "preload", - renderer: true, resolve: false, + sort: true, resolveConditional: false, + renderer: true, + declareRawModules: false, } ] }, @@ -1937,9 +2209,11 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi "!sap/ui/core/designtime/**/*.xml" ], mode: "preload", - renderer: false, resolve: false, + sort: true, resolveConditional: false, + renderer: false, + declareRawModules: false, } ] }, @@ -1963,9 +2237,11 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js), UI5 Versi "!sap/ui/core/**/*-preload.support.js" ], mode: "preload", - renderer: false, resolve: false, + sort: true, resolveConditional: false, + renderer: false, + declareRawModules: false, } ] }, diff --git a/test/lib/tasks/bundlers/generateStandaloneAppBundle.js b/test/lib/tasks/bundlers/generateStandaloneAppBundle.js index a5a4e16d6..9c0b60354 100644 --- a/test/lib/tasks/bundlers/generateStandaloneAppBundle.js +++ b/test/lib/tasks/bundlers/generateStandaloneAppBundle.js @@ -11,7 +11,15 @@ test.beforeEach(async (t) => { return params.reader; }); t.context.taskUtil = { - getProject: sinon.stub(), + getProject: () => ({ + getSpecVersion: () => { + return { + toString: () => "0.1", + gte: sinon.stub().withArgs("4.0").returns(false), + }; + }, + getVersion: () => "1.120.0" + }), getTag: sinon.stub().returns(false), setTag: sinon.stub(), clearTag: sinon.stub(), @@ -267,6 +275,9 @@ test.serial("execute module bundler with taskUtil", async (t) => { mode: "raw", resolve: true, sort: true, + declareRawModules: false, + renderer: false, + resolveConditional: false }, { filters: [ @@ -281,15 +292,23 @@ test.serial("execute module bundler with taskUtil", async (t) => { renderer: true, resolve: true, resolveConditional: true, + declareRawModules: false, + sort: true }, { filters: [ "sap/ui/core/Core.js", ], mode: "require", + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, ], - } + }, + targetUi5CoreVersion: "1.120.0" }); t.is(moduleBundlerStub.getCall(1).args.length, 1); @@ -316,12 +335,20 @@ test.serial("execute module bundler with taskUtil", async (t) => { mode: "raw", resolve: true, sort: true, + resolveConditional: false, + renderer: false, + declareRawModules: false }, { filters: [ "sap/ui/core/Core.js", ], mode: "require", + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, + declareRawModules: false, }, ], }, @@ -330,7 +357,8 @@ test.serial("execute module bundler with taskUtil", async (t) => { }, moduleNameMapping: { "/resources/ponyPath2-dbg.js": "ponyPath2.js" - } + }, + targetUi5CoreVersion: "1.120.0" }); }); @@ -342,12 +370,6 @@ test.serial("execute module bundler with taskUtil, UI5 Version >= 2", async (t) const dummyResource3 = createDummyResource("3.js"); const dummyResource4 = createDummyResource("4-dbg.js"); - taskUtil.getProject = () => { - return { - getVersion: () => "2.0.0" - }; - }; - taskUtil.getTag.withArgs(dummyResource1, taskUtil.STANDARD_TAGS.HasDebugVariant).returns(true); taskUtil.getTag.withArgs(dummyResource2, taskUtil.STANDARD_TAGS.IsDebugVariant).returns(true); @@ -434,6 +456,9 @@ test.serial("execute module bundler with taskUtil, UI5 Version >= 2", async (t) mode: "raw", resolve: true, sort: true, + declareRawModules: false, + renderer: false, + resolveConditional: false, }, { filters: [ @@ -448,16 +473,23 @@ test.serial("execute module bundler with taskUtil, UI5 Version >= 2", async (t) renderer: true, resolve: true, resolveConditional: true, + declareRawModules: false, + sort: true }, { filters: [ "sap/ui/core/Core.js", ], mode: "require", + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, ], }, - targetUi5CoreVersion: "2.0.0" + targetUi5CoreVersion: "1.120.0" }); t.is(moduleBundlerStub.getCall(1).args.length, 1); @@ -484,12 +516,20 @@ test.serial("execute module bundler with taskUtil, UI5 Version >= 2", async (t) mode: "raw", resolve: true, sort: true, + declareRawModules: false, + renderer: false, + resolveConditional: false, }, { filters: [ "sap/ui/core/Core.js", ], mode: "require", + declareRawModules: false, + renderer: false, + resolve: false, + resolveConditional: false, + sort: true, }, ], }, @@ -499,7 +539,7 @@ test.serial("execute module bundler with taskUtil, UI5 Version >= 2", async (t) moduleNameMapping: { "/resources/ponyPath2-dbg.js": "ponyPath2.js" }, - targetUi5CoreVersion: "2.0.0" + targetUi5CoreVersion: "1.120.0" }); });