Socket
Book a DemoInstallSign in
Socket

@onesy/test

Package Overview
Dependencies
Maintainers
0
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@onesy/test

Test suite for front end and back end

latest
Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
2
-95.83%
Maintainers
0
Weekly downloads
 
Created
Source

onesy logo

onesy Test

Test suite for front-end and back-end


MIT license     Production ready     UMD 32.7kb gzipped     100% test cov     Browser and Nodejs

Very simple code     Modern code     Junior friendly     Typescript     Made with :yellow_heart:


Getting started

Add

yarn add @onesy/test --dev

Use

Nodejs

You can have onesy-test options either in package.json in 'onesy-test' property or onesy-test.options.js file in root directory, where onesy-test command will be made.

In nodejs on onesy-test run errors onesy-test exits the process, so it's all good if the command is flow dependent.

onesy-test.options.js

  module.exports = {
    imports: [
      'ts-node/register/transpile-only'
    ],
    files: [
      'test/**/*.test.ts'
    ]
  }

or

package.json

  {
    "scripts": {
      test: "onesy-test"
    },
    "onesy-test": {
      imports: [
        'ts-node/register/transpile-only'
      ],
      files: [
        'test/**/*.test.ts'
      ]
    }
  }

And with yarn test or npm test command onesy-test will run all the tests based on the onesy-test options

yarn test

Browser

Make an OnesyTest instance, which will prepare the environment, write all the tests below it, and run the tests with onesyTest.run() method, which on errors throws an error, so if the tests passing is flow dependent, running tests will obviously stop the method having thrown an error on tests not having passed.

  import { OnesyTest, assert } from '@onesy/test';
  import { wait } from '@onesy/utils';

  const onesyTest = new OnesyTest();

  to('a', () => {
    assert(4).eq(4);
  });

  group('@onesy/a1', () => {

    pre(async () => {
      await wait(140);

      throw new Error('a');
    });

    to('a2', async () => {
      await wait(140);

      assert(4).eq(4);
    });

    group('@onesy/a3', () => {

      to('a3', async () => {
        assert(function a() { }).eq(undefined);
      });

    });

    to('a4', () => {
      [1, 2, 3, 4].forEach(value => {
        assert(typeof value === 'number').true;

        throw new Error('a');
      });
    });

    group('@onesy/a5', () => {
      let a: any;

      pre(async () => {
        await wait(14);
      });

      preTo(async () => {
        await wait(140);

        a = 4;
      });

      to('a5', (resolve, reject) => {
        const error: any = new Error();

        // Added expected and expression message
        error.name = 'An Error';
        error.expected = 4;
        error.expression = 'to be 🍊';

        reject(error);
      });

    });

    to('a6', async () => {
      await wait(74);

      assert(4).eq(4);
    });

    to('a7', async () => {
      assert(['padding-left', 'padding', 'padding-right']).eql(['padding', 'padding-left', 'padding-right']);
    });

    to('a8', async resolve => {
      await wait(4);

      resolve();

      await wait(140);

      assert(4).eq(4);
    });

    to('a9', async () => {
      await assert(function a() { }).throwAsync(4);
    });

    to('a10', async () => {
      assert({
        "direction": "ltr",
        "preference": {
          "background": {
            "default": "neutral"
          },
          "text": {
            "default": "neutral"
          },
          "visual_contrast": {
            "default": "regular"
          }
        },
        "mode": "regular",
        "palette": {
          "accessibility": "regular",
          "visual_contrast": {
            "low": {
              "opacity": {
                "primary": 0.77,
                "secondary": 0.54,
                "tertiary": 0.27
              }
            }
          }
        }
      }).eql({
        "direction": "ltl",
        "preference": {
          "background": {
            "default": "neutral"
          },
          "text": {
            "default": "neutral"
          },
          "visual_contrast": {
            "default": "regular"
          }
        },
        "mode": "regular",
        "palette": {
          "accessibility": "regular",
          "visual_contrast": {
            "low": {
              "opacity": {
                "primary": 0.77,
                "secondary": 0.54,
                "tertiary": 0.27
              }
            }
          }
        }
      });
    });

    to('a11', async () => {
      const value = [
        'OnesyError',
        'OnesyError',
        'OnesyAwsError',
        'OnesyTestError',
        'OnesyAmqpError',
        'AuthenticationError',
        'AuthorizationError',
        'AssertError',
        'ValidationError',
        'PermissionError',
        'OnesyMongoError',
        'ConnectionError',
        'NotFoundError',
        'DeveloperError',
        'OnesyError',
      ];
      const value1 = [
        'OnesyError',
        'OnesyError',
        'OnesyAwsError',
        'OnesyTestError',
        'OnesyAmqpError',
        'AuthenticationError',
        'AuthorizationError',
        'ValidationError',
        'PermissionError',
        'OnesyMongoError',
        'ConnectionError',
        'NotFoundError',
        'DeveloperError',
        'OnesyError',
      ];

      assert(value).eql(value1);
    });

    to('a12', async () => {
      const value = {
        a: {
          a: {
            a: {
              ab: 4,
            },
          },
          ab: 4,
        },
      };
      const value1 = {
        a: {
          a: {
            b: 4,
            a: {
              ab: 5,
              ac: 4,
            },
          },
        },
        ab: [1, 2, 3, 4],
      };

      assert(value).eql(value1);
    });

    to('a13', async () => {
      assert(4).eq(4);
    });

    post(async () => {
      await wait(40);
    });

  });

  to('a14', async () => {
    assert(timezones).eql([{ a: [function a() { }, { a: 4 }, 4] }]);
  });

  await onesyTest.run();

Results logged in nodejs and browser (and with an option for HTML logs)

OnesyTest results

Dev

Install

yarn

Test

yarn test

Prod

Build

yarn build

Keywords

test

FAQs

Package last updated on 11 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts