appia

Appia library

Usage no npm install needed!

<script type="module">
  import appia from 'https://cdn.skypack.dev/appia';
</script>

README

@appia librariry

I choosed the name of the library in memory of my grandfather, who was a great man ! Now that i have been a bit emotional lets dive into it !

Testing

Testing our react component is something that can be (sometimes) stressfull and painfull, let's face it. With this i tend to offer a set of usefful utils to facilitate the case of the unit tests with snapshot in react.

I used react-testing-library to help me in the effort to offer something of quality and that is, under the hood, maintained by a large community.

The packages in this repo will cover redux and react tests with / without react-router, graphql etc...

Getting started

Every packages are indepedant wich means you have to install them independently.

with yarn

yarn add -D @appia/component-test-utils
etc...

with npm

npm install --dev @appia/component-test-utils
etc...

Examples

component-test-utils

package

import { itTestsAllMutations } from '@appia/component-test-utils';

import MyComponent from '../';

const testSets = {
  component: MyComponent,
  mutations: [{
    name: 'with props',
    props: {
      name: 'Markdown',
      date: Date.now(),
    },
    state: {
      resume: 'Some stuffs going on here....'
    }
  }, {
    name: 'without state',
    props: {
      name: 'Markdown',
      date: Date.now(),
    },
  }, {
    name: 'with routing',
    path: '/markdown_path',
  }, {
    name: 'without props'
  }]
};
const { component, mutations } = testSets;

itTestsAllMutations(component, mutations);

redux-test-utils

package

import { itTestsCreateReducers } from '@appia/redux-test-utils';

import reducers, { initPage, initialState } from '..'; // supposed everything is there

// return a function to pass down props
const itShouldRetunsCorrectResults = itTestsCreateReducers(reducers, initialState);

// actual tests 
itShouldRetunsCorrectResults({
  action: initPage,
  mutations: [{
    name: 'initPage tests',
    props: {
      user: 'Markdown user'
    },
  }],
});

Available packages

  • Test reducers / actions / initial state
  • Test react component with state / props
  • Test react component with aboves and react-router
  • Test react component with aboves and Redux
  • Test react component with aboves and graphql

Contribute

Everyone is free to contribute or to ask for new features. If you have some issues do not hesitate to report it !