gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] 02/02: fix testing not compiling


From: gnunet
Subject: [taler-wallet-core] 02/02: fix testing not compiling
Date: Tue, 20 Dec 2022 19:43:04 +0100

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

commit 382e66b179d6fda2598936196b2ae1b97bfab8ef
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Tue Dec 20 15:42:53 2022 -0300

    fix testing not compiling
---
 packages/merchant-backoffice-ui/build.mjs          |  2 +-
 packages/merchant-backoffice-ui/package.json       |  6 +-
 .../Create.stories.tsx => admin/create/stories.ts} | 17 +++--
 .../Create.stories.tsx => admin/index.stories.ts}  | 27 +------
 .../src/paths/index.stories.ts                     |  2 -
 .../details/{Details.stories.tsx => stories.tsx}   |  0
 .../create/Create.stories.tsx => index.stories.ts} | 25 +------
 .../instance/templates/create/Create.stories.tsx   | 13 ----
 .../merchant-backoffice-ui/src/stories.test.ts     | 49 ++++++++++++
 packages/merchant-backoffice-ui/src/stories.tsx    | 21 +++---
 .../merchant-backoffice-ui/tests/stories.test.tsx  | 86 ----------------------
 11 files changed, 80 insertions(+), 168 deletions(-)

diff --git a/packages/merchant-backoffice-ui/build.mjs 
b/packages/merchant-backoffice-ui/build.mjs
index 3bc1916b5..611ef7044 100755
--- a/packages/merchant-backoffice-ui/build.mjs
+++ b/packages/merchant-backoffice-ui/build.mjs
@@ -64,7 +64,7 @@ function getFilesInDirectory(startPath, regex) {
   return result
 }
 
-const allTestFiles = getFilesInDirectory(path.join(BASE, 'src'), /.test.ts$/)
+const allTestFiles = getFilesInDirectory(path.join(BASE, 'tests'), 
/.test.tsx?$/)
 
 const entryPoints = ["src/index.tsx", "src/stories.tsx", ...allTestFiles];
 
diff --git a/packages/merchant-backoffice-ui/package.json 
b/packages/merchant-backoffice-ui/package.json
index b78b3636c..085f92d76 100644
--- a/packages/merchant-backoffice-ui/package.json
+++ b/packages/merchant-backoffice-ui/package.json
@@ -8,7 +8,7 @@
     "check": "tsc",
     "compile": "tsc && ./build.mjs",
     "dev": "preact watch --port ${PORT:=8080} --no-sw --no-esm",
-    "test": "pnpm compile && mocha --require source-map-support/register 
'dist/**/test.js'",
+    "test": "pnpm compile && mocha --require source-map-support/register 
'*.test.js' 'dist/**/test.js'",
     "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
     "i18n:extract": "pogen extract",
     "i18n:merge": "pogen merge",
@@ -51,7 +51,7 @@
     "@testing-library/preact-hooks": "^1.1.0",
     "@types/history": "^4.7.8",
     "@types/jest": "^26.0.23",
-    "@types/mocha": "^8.2.2",
+    "@types/mocha": "^8.2.3",
     "@types/node": "^18.8.5",
     "@typescript-eslint/eslint-plugin": "^4.22.0",
     "@typescript-eslint/parser": "^4.22.0",
@@ -73,6 +73,8 @@
     "inline-chunk-html-plugin": "^1.1.1",
     "jest": "^26.6.3",
     "jest-preset-preact": "^4.0.2",
+    "mocha": "^9.2.0",
+    "preact-render-to-string": "^5.2.6",
     "rimraf": "^3.0.2",
     "sass": "1.56.1",
     "typedoc": "^0.20.36",
diff --git 
a/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
 b/packages/merchant-backoffice-ui/src/paths/admin/create/stories.ts
similarity index 72%
copy from 
packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
copy to packages/merchant-backoffice-ui/src/paths/admin/create/stories.ts
index b81130146..45b94ec8c 100644
--- 
a/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/admin/create/stories.ts
@@ -23,19 +23,26 @@ import { h, VNode, FunctionalComponent } from "preact";
 import { CreatePage as TestedComponent } from "./CreatePage.js";
 
 export default {
-  title: "Pages/Templates/Create",
+  title: "Pages/Instance/Create",
   component: TestedComponent,
+  argTypes: {
+    onCreate: { action: "onCreate" },
+    goBack: { action: "goBack" },
+  },
 };
 
 function createExample<Props>(
   Component: FunctionalComponent<Props>,
   props: Partial<Props>,
 ) {
-  const r = (args: any) => <Component {...args} />;
+  const r = (args: any) => h(Component, args);
+  // const r = (args: any) => <Component {...args} />;
   r.args = props;
   return r;
 }
 
-export const Example = createExample(TestedComponent, {
-  accounts: ["payto://x-taler-bank/account1", "payto://x-taler-bank/account2"],
-});
+export const Example = createExample(TestedComponent, {});
+// export const Example = (a: any): VNode => <CreatePage {...a} />;
+// Example.args = {
+//   isLoading: false
+// }
diff --git 
a/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
 b/packages/merchant-backoffice-ui/src/paths/admin/index.stories.ts
similarity index 53%
copy from 
packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
copy to packages/merchant-backoffice-ui/src/paths/admin/index.stories.ts
index b81130146..fdae1a24d 100644
--- 
a/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/admin/index.stories.ts
@@ -14,28 +14,5 @@
  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
-/**
- *
- * @author Sebastian Javier Marchano (sebasjm)
- */
-
-import { h, VNode, FunctionalComponent } from "preact";
-import { CreatePage as TestedComponent } from "./CreatePage.js";
-
-export default {
-  title: "Pages/Templates/Create",
-  component: TestedComponent,
-};
-
-function createExample<Props>(
-  Component: FunctionalComponent<Props>,
-  props: Partial<Props>,
-) {
-  const r = (args: any) => <Component {...args} />;
-  r.args = props;
-  return r;
-}
-
-export const Example = createExample(TestedComponent, {
-  accounts: ["payto://x-taler-bank/account1", "payto://x-taler-bank/account2"],
-});
+// export * as list from "./list/stories.js";
+export * as create from "./create/stories.js";
diff --git a/packages/merchant-backoffice-ui/src/paths/index.stories.ts 
b/packages/merchant-backoffice-ui/src/paths/index.stories.ts
deleted file mode 100644
index ecf28445b..000000000
--- a/packages/merchant-backoffice-ui/src/paths/index.stories.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * as a1 from "./admin/create/Create.stories.js";
-export * as a2 from "./instance/details/Details.stories.js";
diff --git 
a/packages/merchant-backoffice-ui/src/paths/instance/details/Details.stories.tsx
 b/packages/merchant-backoffice-ui/src/paths/instance/details/stories.tsx
similarity index 100%
rename from 
packages/merchant-backoffice-ui/src/paths/instance/details/Details.stories.tsx
rename to packages/merchant-backoffice-ui/src/paths/instance/details/stories.tsx
diff --git 
a/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
 b/packages/merchant-backoffice-ui/src/paths/instance/index.stories.ts
similarity index 53%
copy from 
packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
copy to packages/merchant-backoffice-ui/src/paths/instance/index.stories.ts
index b81130146..3670c2807 100644
--- 
a/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/index.stories.ts
@@ -14,28 +14,5 @@
  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
-/**
- *
- * @author Sebastian Javier Marchano (sebasjm)
- */
-
-import { h, VNode, FunctionalComponent } from "preact";
-import { CreatePage as TestedComponent } from "./CreatePage.js";
-
-export default {
-  title: "Pages/Templates/Create",
-  component: TestedComponent,
-};
-
-function createExample<Props>(
-  Component: FunctionalComponent<Props>,
-  props: Partial<Props>,
-) {
-  const r = (args: any) => <Component {...args} />;
-  r.args = props;
-  return r;
-}
+export * as details from "./details/stories.js";
 
-export const Example = createExample(TestedComponent, {
-  accounts: ["payto://x-taler-bank/account1", "payto://x-taler-bank/account2"],
-});
diff --git 
a/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
 
b/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
index b81130146..c9d17ea3b 100644
--- 
a/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
+++ 
b/packages/merchant-backoffice-ui/src/paths/instance/templates/create/Create.stories.tsx
@@ -26,16 +26,3 @@ export default {
   title: "Pages/Templates/Create",
   component: TestedComponent,
 };
-
-function createExample<Props>(
-  Component: FunctionalComponent<Props>,
-  props: Partial<Props>,
-) {
-  const r = (args: any) => <Component {...args} />;
-  r.args = props;
-  return r;
-}
-
-export const Example = createExample(TestedComponent, {
-  accounts: ["payto://x-taler-bank/account1", "payto://x-taler-bank/account2"],
-});
diff --git a/packages/merchant-backoffice-ui/src/stories.test.ts 
b/packages/merchant-backoffice-ui/src/stories.test.ts
new file mode 100644
index 000000000..6a401dd25
--- /dev/null
+++ b/packages/merchant-backoffice-ui/src/stories.test.ts
@@ -0,0 +1,49 @@
+/*
+ This file is part of GNU Taler
+ (C) 2021-2023 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+/**
+ *
+ * @author Sebastian Javier Marchano (sebasjm)
+ */
+import { setupI18n } from "@gnu-taler/taler-util";
+import { parseGroupImport } from "@gnu-taler/web-util/lib/index.browser";
+
+import * as admin from "./paths/admin/index.stories.js";
+import * as instance from "./paths/instance/index.stories.js";
+
+setupI18n("en", { en: {} });
+
+import { h as create } from "preact"
+import { render as renderToString } from "preact-render-to-string";
+
+describe("All the examples:", () => {
+  const cms = parseGroupImport({ admin, instance });
+  cms.forEach((group) => {
+    describe(`Example for group: ${group.title}`, () => {
+      group.list.forEach((component) => {
+        describe(`Component: ${component.name}`, () => {
+          component.examples.forEach((example) => {
+            it(`should render example: ${example.name}`, () => {
+              const vdom = create(example.render.component, 
example.render.props)
+              const html = renderToString(vdom)
+              // console.log(html)
+            });
+          });
+        });
+      });
+    });
+  });
+});
diff --git a/packages/merchant-backoffice-ui/src/stories.tsx 
b/packages/merchant-backoffice-ui/src/stories.tsx
index b7136d185..ccfde4ef2 100644
--- a/packages/merchant-backoffice-ui/src/stories.tsx
+++ b/packages/merchant-backoffice-ui/src/stories.tsx
@@ -1,17 +1,17 @@
 /*
- This file is part of GNU Anastasis
- (C) 2021-2022 Anastasis SARL
+ This file is part of GNU Taler
+ (C) 2021-2023 Taler Systems S.A.
 
- GNU Anastasis is free software; you can redistribute it and/or modify it 
under the
- terms of the GNU Affero General Public License as published by the Free 
Software
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
  Foundation; either version 3, or (at your option) any later version.
 
- GNU Anastasis is distributed in the hope that it will be useful, but WITHOUT 
ANY
+ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more 
details.
+ A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
- You should have received a copy of the GNU Affero General Public License 
along with
- GNU Anastasis; see the file COPYING.  If not, see 
<http://www.gnu.org/licenses/>
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
 
 /**
@@ -20,7 +20,8 @@
  */
 import { strings } from "./i18n/strings.js";
 
-import * as pages from "./paths/index.stories.js";
+import * as admin from "./paths/admin/index.stories.js";
+import * as instance from "./paths/instance/index.stories.js";
 
 import { renderStories } from "@gnu-taler/web-util/lib/index.browser";
 
@@ -32,7 +33,7 @@ function SortStories(a: any, b: any): number {
 
 function main(): void {
   renderStories(
-    { pages },
+    { admin, instance },
     {
       strings,
     },
diff --git a/packages/merchant-backoffice-ui/tests/stories.test.tsx 
b/packages/merchant-backoffice-ui/tests/stories.test.tsx
deleted file mode 100644
index 19887431e..000000000
--- a/packages/merchant-backoffice-ui/tests/stories.test.tsx
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- This file is part of GNU Taler
- (C) 2021-2023 Taler Systems S.A.
-
- GNU Taler is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
-
-/**
- *
- * @author Sebastian Javier Marchano (sebasjm)
- */
-import { h, VNode } from "preact";
-import * as config from "../src/context/config.js";
-import * as i18n from "../src/context/translation.js";
-import { cleanup, render as originalRender } from "@testing-library/preact";
-import { SWRConfig } from "swr";
-
-import fs from "fs";
-
-function getFiles(dir: string, files_: string[] = []) {
-  const files = fs.readdirSync(dir);
-  for (const i in files) {
-    const name = dir + "/" + files[i];
-    if (fs.statSync(name).isDirectory()) {
-      getFiles(name, files_);
-    } else {
-      files_.push(name);
-    }
-  }
-  return files_;
-}
-
-const STORIES_NAME_REGEX = RegExp(".*.stories.tsx");
-
-function render(vnode: VNode) {
-  const SC: any = SWRConfig
-  return originalRender(
-    <SC value={{ provider: () => new Map() }}>
-      {vnode}
-    </SC>,
-  );
-}
-
-import * as jedLib from "jed";
-const handler = new jedLib.Jed("en");
-
-describe("storybook testing", () => {
-  it("render every story", () => {
-    jest
-      .spyOn(config, "useConfigContext")
-      .mockImplementation(() => ({ version: "1.0.0", currency: "EUR" }));
-    jest.spyOn(i18n, "useTranslationContext").mockImplementation(() => ({
-      changeLanguage: () => null,
-      handler,
-      lang: "en",
-    }));
-
-    getFiles("./src")
-      .filter((f) => STORIES_NAME_REGEX.test(f))
-      .map((f) => {
-        // const f = "./src/paths/instance/transfers/list/List.stories.tsx";
-        // eslint-disable-next-line @typescript-eslint/no-var-requires
-        const s = require(`../${f}`);
-
-        delete s.default;
-        Object.keys(s).forEach((k) => {
-          const Component = s[k];
-          const vdom = <Component {...Component.args} />;
-          expect(() => {
-            const { unmount } = render(vdom);
-            unmount();
-          }).not.toThrow(); //`problem rendering ${f} example ${k}`
-          cleanup();
-        });
-      });
-  });
-});

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]