@kontur.candy/tools 2.224.0 → 2.225.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/distr/Common/CandyApiClient/CandyApiClient.js +1 -1
- package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -1
- package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -1
- package/distr/Common/WellKnownDirectories.js +2 -0
- package/distr/Common/WellKnownDirectories.js.map +1 -1
- package/distr/Common/WellKnownDirectoryPaths.js +21 -0
- package/distr/Common/WellKnownDirectoryPaths.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/DemoTest.test.js +17 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/DemoTest.test.js.map +1 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/browser/Smoke.test.js +5 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/browser/Smoke.test.js.map +1 -0
- package/distr/Tools/src/Commons/FormGlobsUtils.js.map +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +5 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +22 -17
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +1 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +0 -15
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js.map +0 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +0 -23
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js.map +0 -1
package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/DemoTest.test.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _formTesting = require("@kontur.candy/form-testing");
|
|
4
|
+
var _test = require("@playwright/test");
|
|
5
|
+
const test = (0, _formTesting.createCandyUITest)({
|
|
6
|
+
gfv: "{gfv}"
|
|
7
|
+
});
|
|
8
|
+
test.describe("DemoTest", () => {
|
|
9
|
+
test("Авторасчет значения", async ({
|
|
10
|
+
form
|
|
11
|
+
}) => {
|
|
12
|
+
await form.setValueToControl("Файл/Документ/Значениe1", "setValue", "10");
|
|
13
|
+
(0, _test.expect)(await form.getValueFromControl("Файл/Документ/Значениe2", "getValue")).toBe("9");
|
|
14
|
+
(0, _test.expect)(await form.getValueFromControl("Файл/Документ/Значениe3", "getValue")).toBe("12");
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=DemoTest.test.js.map
|
package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/DemoTest.test.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DemoTest.test.js","names":["_formTesting","require","_test","test","createCandyUITest","gfv","describe","form","setValueToControl","expect","getValueFromControl","toBe"],"sources":["../../../../../../../../src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/DemoTest.test.ts"],"sourcesContent":["import { createCandyUITest } from \"@kontur.candy/form-testing\";\nimport { expect } from \"@playwright/test\";\n\nconst test = createCandyUITest({ gfv: \"{gfv}\" });\n\ntest.describe(\"DemoTest\", () => {\n test(\"Авторасчет значения\", async ({ form }) => {\n await form.setValueToControl(\"Файл/Документ/Значениe1\", \"setValue\", \"10\")\n expect(await form.getValueFromControl(\"Файл/Документ/Значениe2\", \"getValue\")).toBe(\"9\")\n expect(await form.getValueFromControl(\"Файл/Документ/Значениe3\", \"getValue\")).toBe(\"12\")\n });\n});\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA,MAAME,IAAI,GAAG,IAAAC,8BAAiB,EAAC;EAAEC,GAAG,EAAE;AAAQ,CAAC,CAAC;AAEhDF,IAAI,CAACG,QAAQ,CAAC,UAAU,EAAE,MAAM;EAC5BH,IAAI,CAAC,qBAAqB,EAAE,OAAO;IAAEI;EAAK,CAAC,KAAK;IAC5C,MAAMA,IAAI,CAACC,iBAAiB,CAAC,yBAAyB,EAAE,UAAU,EAAE,IAAI,CAAC;IACzE,IAAAC,YAAM,EAAC,MAAMF,IAAI,CAACG,mBAAmB,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;IACvF,IAAAF,YAAM,EAAC,MAAMF,IAAI,CAACG,mBAAmB,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EAC5F,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Smoke.test.js","names":["_SmokeTestPW","require","createSmokeTest","__dirname"],"sources":["../../../../../../../../../src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/browser/Smoke.test.ts"],"sourcesContent":["import { createSmokeTest } from \"../../../../../../../../candy.farm/test/Commons/SmokeTestPW\";\n\ncreateSmokeTest(__dirname);\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,4BAAe,EAACC,SAAS,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormGlobsUtils.js","names":["_path","_interopRequireDefault","require","_fsExtra","_ResolveFormInfo","_FormPathUtils","_WellKnownDirectories","_FsUtils","FormGlobs","enumerateFormsInRepository","repositoryRoots","result","repositoryRoot","formJsonPath","globAsync","WellKnownDirectories","FormJsonFileName","cwd","formPath","path","dirname","gfv","extractGfvFromFormPath","push","join","formRelativePath","TestFarmDir","CandySubdirectoryName","ensureEachGlobResolvesIntoExistingForm","formGlobs","farmDirectory","formGlob","resolvedGfvs","resolveGfvGlobs","length","Error","Map","normalize","isFormMatchToGlob","set","entries","map","resolveSpecifiers","formGlobsWithSpecifiers","results","Promise","all","x","resolveOnlyFormGlobSpecifiers","flat","gfvRegexp","RegExp","replace","test","includes","pathExists","formConfig","readFormConfig","build","endsWith","exports"],"sources":["../../../../src/Commons/FormGlobsUtils.ts"],"sourcesContent":["import path from \"path\";\n\nimport { pathExists } from \"fs-extra\";\n\nimport { readFormConfig } from \"../BuildTasks/ResolveFormInfo\";\nimport { extractGfvFromFormPath } from \"../../../Common/FormPathUtils\";\nimport { WellKnownDirectories } from \"../../../Common/WellKnownDirectories\";\n\nimport { globAsync } from \"./FsUtils\";\nimport { FormLocationInfo } from \"./FormLocationInfo\";\n\nexport class FormGlobs {\n public static async enumerateFormsInRepository(\n ...repositoryRoots: string[]\n ): Promise<Array<{ gfv: string; formPath: string; formRelativePath: string }>> {\n const result: Array<{ gfv: string; formPath: string; formRelativePath: string }> = [];\n\n for (const repositoryRoot of repositoryRoots) {\n for (const formJsonPath of await globAsync(`candy.farm/forms/*/${WellKnownDirectories.FormJsonFileName}`, {\n cwd: repositoryRoot,\n })) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, formPath),\n formRelativePath: formPath,\n });\n }\n for (const formJsonPath of await globAsync(\n `${WellKnownDirectories.TestFarmDir}/forms/*/${WellKnownDirectories.FormJsonFileName}`,\n {\n cwd: repositoryRoot,\n }\n )) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, formPath),\n formRelativePath: formPath,\n });\n }\n for (const formJsonPath of await globAsync(\n `candy.rpn.farm/forms/*/${WellKnownDirectories.FormJsonFileName}`,\n {\n cwd: repositoryRoot,\n }\n )) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, formPath),\n formRelativePath: formPath,\n });\n }\n for (const formJsonPath of await globAsync(\n `candy.diadoc.farm/forms/*/${WellKnownDirectories.FormJsonFileName}`,\n {\n cwd: repositoryRoot,\n }\n )) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, formPath),\n formRelativePath: formPath,\n });\n }\n for (const formJsonPath of await globAsync(\n `**/${WellKnownDirectories.CandySubdirectoryName}/${WellKnownDirectories.FormJsonFileName}`,\n { cwd: path.join(repositoryRoot, \"forms\") }\n )) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, \"forms\", formPath),\n formRelativePath: formPath,\n });\n }\n }\n return result;\n }\n\n public static async ensureEachGlobResolvesIntoExistingForm(\n formGlobs: string[],\n farmDirectory: string\n ): Promise<string[]> {\n for (const formGlob of formGlobs) {\n const resolvedGfvs = await this.resolveGfvGlobs([formGlob], farmDirectory);\n if (resolvedGfvs.length === 0) {\n throw new Error(`Форм соответствующих ${formGlob} не найдено.`);\n }\n }\n return formGlobs;\n }\n\n public static async resolveGfvGlobs(formGlobs: string[], farmDirectory: string): Promise<FormLocationInfo[]> {\n const result: Map<string, string> = new Map();\n\n for (const { gfv, formPath } of await FormGlobs.enumerateFormsInRepository(\n path.normalize(path.join(farmDirectory, \"..\"))\n )) {\n for (const formGlob of formGlobs) {\n if (await FormGlobs.isFormMatchToGlob(formGlob, gfv, formPath)) {\n result.set(gfv, formPath);\n }\n }\n }\n\n return [...result.entries()].map(([gfv, formPath]) => ({ gfv: gfv, formPath: formPath }));\n }\n\n public static async resolveSpecifiers(formGlobsWithSpecifiers: string[], farmDirectory: string): Promise<string[]> {\n const results = await Promise.all(\n formGlobsWithSpecifiers.map(x => this.resolveOnlyFormGlobSpecifiers(x, farmDirectory))\n );\n return results.flat();\n }\n\n private static async isFormMatchToGlob(formGlob: string, gfv: string, formPath: string) {\n const gfvRegexp = new RegExp(\n \"^\" +\n formGlob\n .replace(\":with-ui-tests\", \"\")\n .replace(\":with-ci-build\", \"\")\n .replace(/\\*/gi, \"\\\\d*\")\n .replace(/\\?/gi, \"\\\\d\") +\n \"$\"\n );\n if (gfvRegexp.test(gfv)) {\n if (formGlob.includes(\":with-ui-tests\")) {\n if (!(await pathExists(path.join(formPath, \"test\")))) {\n return false;\n }\n }\n if (formGlob.includes(\":with-ci-build\")) {\n const formJsonPath = path.join(formPath, WellKnownDirectories.FormJsonFileName);\n const formConfig = await readFormConfig(formJsonPath);\n if (formConfig.build !== \"ci\") {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n\n private static async resolveOnlyFormGlobSpecifiers(formGlob: string, farmDirectory: string): Promise<string[]> {\n if (formGlob.endsWith(\":with-ui-tests\")) {\n return (await this.resolveGfvGlobs([formGlob], farmDirectory)).map(x => x.gfv);\n }\n if (formGlob.endsWith(\":with-ci-build\")) {\n return (await this.resolveGfvGlobs([formGlob], farmDirectory)).map(x => x.gfv);\n }\n return [formGlob];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormGlobsUtils.js","names":["_path","_interopRequireDefault","require","_fsExtra","_ResolveFormInfo","_FormPathUtils","_WellKnownDirectories","_FsUtils","FormGlobs","enumerateFormsInRepository","repositoryRoots","result","repositoryRoot","formJsonPath","globAsync","WellKnownDirectories","FormJsonFileName","cwd","formPath","path","dirname","gfv","extractGfvFromFormPath","push","join","formRelativePath","TestFarmDir","CandySubdirectoryName","ensureEachGlobResolvesIntoExistingForm","formGlobs","farmDirectory","formGlob","resolvedGfvs","resolveGfvGlobs","length","Error","Map","normalize","isFormMatchToGlob","set","entries","map","resolveSpecifiers","formGlobsWithSpecifiers","results","Promise","all","x","resolveOnlyFormGlobSpecifiers","flat","gfvRegexp","RegExp","replace","test","includes","pathExists","formConfig","readFormConfig","build","endsWith","exports"],"sources":["../../../../src/Commons/FormGlobsUtils.ts"],"sourcesContent":["import path from \"path\";\n\nimport { pathExists } from \"fs-extra\";\n\nimport { readFormConfig } from \"../BuildTasks/ResolveFormInfo\";\nimport { extractGfvFromFormPath } from \"../../../Common/FormPathUtils\";\nimport { WellKnownDirectories } from \"../../../Common/WellKnownDirectories\";\n\nimport { globAsync } from \"./FsUtils\";\nimport { FormLocationInfo } from \"./FormLocationInfo\";\n\nexport interface GfvInfo {\n gfv: string;\n formPath: string;\n formRelativePath: string;\n}\n\nexport class FormGlobs {\n public static async enumerateFormsInRepository(...repositoryRoots: string[]): Promise<GfvInfo[]> {\n const result: GfvInfo[] = [];\n\n for (const repositoryRoot of repositoryRoots) {\n for (const formJsonPath of await globAsync(`candy.farm/forms/*/${WellKnownDirectories.FormJsonFileName}`, {\n cwd: repositoryRoot,\n })) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, formPath),\n formRelativePath: formPath,\n });\n }\n for (const formJsonPath of await globAsync(\n `${WellKnownDirectories.TestFarmDir}/forms/*/${WellKnownDirectories.FormJsonFileName}`,\n {\n cwd: repositoryRoot,\n }\n )) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, formPath),\n formRelativePath: formPath,\n });\n }\n for (const formJsonPath of await globAsync(\n `candy.rpn.farm/forms/*/${WellKnownDirectories.FormJsonFileName}`,\n {\n cwd: repositoryRoot,\n }\n )) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, formPath),\n formRelativePath: formPath,\n });\n }\n for (const formJsonPath of await globAsync(\n `candy.diadoc.farm/forms/*/${WellKnownDirectories.FormJsonFileName}`,\n {\n cwd: repositoryRoot,\n }\n )) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, formPath),\n formRelativePath: formPath,\n });\n }\n for (const formJsonPath of await globAsync(\n `**/${WellKnownDirectories.CandySubdirectoryName}/${WellKnownDirectories.FormJsonFileName}`,\n { cwd: path.join(repositoryRoot, \"forms\") }\n )) {\n const formPath = path.dirname(formJsonPath);\n const gfv = extractGfvFromFormPath(formPath);\n result.push({\n gfv: gfv,\n formPath: path.join(repositoryRoot, \"forms\", formPath),\n formRelativePath: formPath,\n });\n }\n }\n return result;\n }\n\n public static async ensureEachGlobResolvesIntoExistingForm(\n formGlobs: string[],\n farmDirectory: string\n ): Promise<string[]> {\n for (const formGlob of formGlobs) {\n const resolvedGfvs = await this.resolveGfvGlobs([formGlob], farmDirectory);\n if (resolvedGfvs.length === 0) {\n throw new Error(`Форм соответствующих ${formGlob} не найдено.`);\n }\n }\n return formGlobs;\n }\n\n public static async resolveGfvGlobs(formGlobs: string[], farmDirectory: string): Promise<FormLocationInfo[]> {\n const result: Map<string, string> = new Map();\n\n for (const { gfv, formPath } of await FormGlobs.enumerateFormsInRepository(\n path.normalize(path.join(farmDirectory, \"..\"))\n )) {\n for (const formGlob of formGlobs) {\n if (await FormGlobs.isFormMatchToGlob(formGlob, gfv, formPath)) {\n result.set(gfv, formPath);\n }\n }\n }\n\n return [...result.entries()].map(([gfv, formPath]) => ({ gfv: gfv, formPath: formPath }));\n }\n\n public static async resolveSpecifiers(formGlobsWithSpecifiers: string[], farmDirectory: string): Promise<string[]> {\n const results = await Promise.all(\n formGlobsWithSpecifiers.map(x => this.resolveOnlyFormGlobSpecifiers(x, farmDirectory))\n );\n return results.flat();\n }\n\n private static async isFormMatchToGlob(formGlob: string, gfv: string, formPath: string) {\n const gfvRegexp = new RegExp(\n \"^\" +\n formGlob\n .replace(\":with-ui-tests\", \"\")\n .replace(\":with-ci-build\", \"\")\n .replace(/\\*/gi, \"\\\\d*\")\n .replace(/\\?/gi, \"\\\\d\") +\n \"$\"\n );\n if (gfvRegexp.test(gfv)) {\n if (formGlob.includes(\":with-ui-tests\")) {\n if (!(await pathExists(path.join(formPath, \"test\")))) {\n return false;\n }\n }\n if (formGlob.includes(\":with-ci-build\")) {\n const formJsonPath = path.join(formPath, WellKnownDirectories.FormJsonFileName);\n const formConfig = await readFormConfig(formJsonPath);\n if (formConfig.build !== \"ci\") {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n\n private static async resolveOnlyFormGlobSpecifiers(formGlob: string, farmDirectory: string): Promise<string[]> {\n if (formGlob.endsWith(\":with-ui-tests\")) {\n return (await this.resolveGfvGlobs([formGlob], farmDirectory)).map(x => x.gfv);\n }\n if (formGlob.endsWith(\":with-ci-build\")) {\n return (await this.resolveGfvGlobs([formGlob], farmDirectory)).map(x => x.gfv);\n }\n return [formGlob];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|