@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.
Files changed (24) hide show
  1. package/distr/Common/CandyApiClient/CandyApiClient.js +1 -1
  2. package/distr/Common/CandyApiClient/CandyApiClient.js.map +1 -1
  3. package/distr/Common/CandyApiClient/FakeCandyApiClient.js.map +1 -1
  4. package/distr/Common/CandyApiClient/ICandyApiClient.js.map +1 -1
  5. package/distr/Common/WellKnownDirectories.js +2 -0
  6. package/distr/Common/WellKnownDirectories.js.map +1 -1
  7. package/distr/Common/WellKnownDirectoryPaths.js +21 -0
  8. package/distr/Common/WellKnownDirectoryPaths.js.map +1 -0
  9. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/DemoTest.test.js +17 -0
  10. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/DemoTest.test.js.map +1 -0
  11. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/browser/Smoke.test.js +5 -0
  12. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/playwright/browser/Smoke.test.js.map +1 -0
  13. package/distr/Tools/src/Commons/FormGlobsUtils.js.map +1 -1
  14. package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
  15. package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
  16. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +5 -0
  17. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
  18. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +22 -17
  19. package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
  20. package/package.json +1 -1
  21. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +0 -15
  22. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js.map +0 -1
  23. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +0 -23
  24. package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js.map +0 -1
@@ -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
@@ -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,5 @@
1
+ "use strict";
2
+
3
+ var _SmokeTestPW = require("../../../../../../../../candy.farm/test/Commons/SmokeTestPW");
4
+ (0, _SmokeTestPW.createSmokeTest)(__dirname);
5
+ //# sourceMappingURL=Smoke.test.js.map
@@ -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":[]}