capacitor-community / generic-oauth2

Generic Capacitor OAuth 2 client plugin. Stop the war in Ukraine!
MIT License
234 stars 115 forks source link

Bug: Jest not working when using the plugin #264

Open danaabhi opened 6 months ago

danaabhi commented 6 months ago

I have installed the plugin, and now i am writing the unit test cases for the project, i implement all required setup for jest, when running a normal test file without any plugin it work, but when i write a test case for login with following plugin i get error as mentioned below



> react-capacitor-connectapp@0.0.0 test
> jest

ts-jest[config] (WARN) message TS151001: If you have issues related to imports, you should consider setting `esModuleInterop` to `true` in your TypeScript configuration file (usually `tsconfig.json`). See https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/#easier-ecmascript-module-interoperability for more information.
 FAIL  src/pages/login/login.test.tsx
  ● Test suite failed to run

    Jest encountered an unexpected token

    Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

    Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.

    By default "node_modules" folder is ignored by transformers.

    Here's what you can do:
     • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
     • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
     • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

    You'll find more details and examples of these config options in the docs:
    https://jestjs.io/docs/configuration
    For information about custom transformations, see:
    https://jestjs.io/docs/code-transformation

    Details:

    node_modules\@byteowls\capacitor-oauth2\dist\esm\index.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){import { registerPlugin } from '@capacitor/core';
                                                                                      ^^^^^^

    SyntaxError: Cannot use import statement outside a module

       5 | import { AppButtonWithIcon } from '../../components/buttons/appButtonWithIcon';
       6 | import { Fade } from 'react-slideshow-image';
    >  7 | import { OAuth2Client } from '@byteowls/capacitor-oauth2';
         | ^
       8 | import {
       9 |   savePreference,
      10 |   saveSecurePreference,

      at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1505:14)
      at Object.<anonymous> (src/pages/login/Login.tsx:7:1)
      at Object.<anonymous> (src/pages/login/login.test.tsx:8:1)

Test Suites: 1 failed, 1 total                                                                                                                                   
Tests:       0 total                                                                                                                                             
Snapshots:   0 total
Time:        5.882 s
Ran all test suites.```

Help to fix the following issue i am using react with vitejs and capacitor using typescript