Testowanie Automatyczne i JavaScript.

Poniższy post jest dopełnieniem dwóch prezentacji dotyczących Testowania Automatycznego w JavaScript.

Oczym mówię i koduje:
👉 Testy Jednostkowe#Jest
👉 Testy Strukturalne i ich konfiguracja, z użyciem narzędzi #codeclimate #eslint
👉 Testy Integracyjne/funkcjonalne-jest i #react-testing-library
👉 Testy End-to-end e2d — #cypress.js
👉 Testy Akceptacyjne #codecept.ja
👉 Konfiguracja #Jest do Test Driven Development, raporty Code Coverage #junit
👉 Konfiguracja Continuous Integration na podstawie #CircleCi, #Jest i #Cypress
👉 Ustawienia pre-hooków z użyciem husky, aby nie wypychać niepoprawnego kodu.

Oprócz poniższego postu całość dostępna jest w formie repozytorium github oraz prezentacji wideo:

Cześć pierwsza — teoria


Cześć druga — Livecoding


Testowanie Automatyczne w JavaScript — teoria i przykłady

Mateusz Wojczal i wsparcie Strajku Kobiet
Mateusz Wojczal i wsparcie Strajku Kobiet

In this article I’ll try to focus on pure examples of testing strategies in Strapi 3. It’s a continuation of previous medium post

All the examples are covered in github repository and all the tests are run by CircleCi.

Supporting tools

For a more efficient (DRY) workflow I’m going to use the same straight-forward factories for mock objects and helpers to interact with strapi instance.


User factory

Extended helpers

Strapi general helper was introduced in a previous article, yet this one is a bit extended.

Strapi helper

JSON Web Token signed request

To get a Bearer token required for all authenticated requests you can either

- call…

Edit. After publishing this article I was contacted by Strapi team which ended with this official tutorial as part of Strapi 3 documentation. Thank you Strapi team for that.
More examples are covered in the next article.

Recently I started working with amazing Strapi Headless CMS. After reading all the documentation I was quite shocked that there is not even one sentence about any kind of testing (unit, e2e, whatsoever) with that software. Also after reading comments in Github issues, Slack channel, Stack Overflow and similar resources I realised that this topic is very much neglected. …

Google Translate is a service that allows you to automate translation from one language into another. It does translate not single terms but whole sentences as well. You can use it though the dedicated website but it also exposes API that can be used in bespoke applications.

Google Translate website service

In order to use to API you need to get the API access key which in case of this particular service is not as straight forward as in case of other Google APIs like Google Maps.

In this article I’ll try to cover two topics:

  1. Getting the Bearer token required to call the…

There are many npm packages that solves the following issue.

/--X--| SMTP 1 |
/ ^ |--------|
/ \--- Retry with next provider
|----------------|/ |--------| |------------------|
| Mail | ---X--> | SMTP 2 | /->| ^_^ Happy user |
|----------------|\ ^ |--------| / |------------------|
\ \--- Retry /
\ |--------| /
\---->| SMTP 3 |--/

The following diagram is taken from Meteor-Mailer which is based on nodemailer which im going to use in the example below.

Code below is responsible for the following
1. Try to send email with default email (here it would be Meteor.JS email system)…

When you search google on how to change / reset user password most tips includes changing this from the database. Yet there is imho better way that use Laravels Tinker

Laravel REPL

All Laravel applications include Tinker, a REPL powered by the PsySH package. Tinker allows you to interact with your entire Laravel application on the command line, including the Eloquent ORM, jobs, events, and more. To enter the Tinker environment, run the tinker Artisan command:

Chaning password (or any other Model data)

Launch the console from main folder with

php artisan tinker

After that you enters Laravels console — all commands from now are interpreted as php code. So to change user@example.com password you would just run.

$user = App\User::where('email', 'user@example.com')->first();
$user->password = Hash::make('password');

That’s it. Password changed.

I’ve created a simple boilerplate to rapidly develop Drupal application based on the technological stack we work day-to-day. Purpose of that was to implement new programmers in Drupal 8 environment in easy way.

The whole stack contains

Installation. Step by step

Start by creating new Drupal 8 instance from composer by calling

composer create-project drupal-composer/drupal-project:8.x-dev helloworld --stability dev --no-interaction

I’ve come across issue when i wanted upgrade Gitlab CE from 10.5 to latest 11.X stable version. I’m using Ubuntu on my hosting machine, on the official documentation of GL says that you should run command

sudo apt-get update && sudo apt-get install gitlab-ce

which should be just enough, yet the installer returns that you should upgrade to 10.8 in first place. I’m writing this post because I couldn’t find this tutorial anywhere.

Like most of similar tasks in Linux this is quite simple. You need to upgrate package manager with sudo apt-get update and then find last 10.8 …

Around 2014 polish government decided that there is too much junk food in schools, so their voted to ban selling it in small shops inside school buildings. As the idea was nobile and right, the result was that most of those shop had to close their business, since they lived from selling donuts rather than apples. The final outcome was they could not buy any food inside school at all.

Tuszama is an web and mobile app that meets the needs of those hungry students — it allows pupils in high schools to order food at their grand break…

Almost ready photo booth in the garage.

Last week I had a wedding :) It was a great party but this is not a blog about entertainment. Since I’m very enthusiastic about DIY and Raspberry i thought — why not build a self made photo booth that instead of instantly printing images is uploading them on special new instagram account that everybody would have access to. I talked with my brother Rafal and we decided that it shouldn’t be a big deal. So this is how we have done it.

First of all was to decide the hardware parts. I had an old SLR Camera Nikon d80…

Mateusz Wojczal

founder of Qunabu Interactive from Gdańsk, Poland. Full-stack web developer with over a dozen years of experience.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store