The following guide is a quick setup for how to get started with writing automated end to end tests using puppeteer and running them using jest for react app.
If your app was created using create-react-app just run:
If your app was created without using create-react-app, run:
For running the tests
Some Basic Code
Let's start by writing a very basic test. By default jest will assume all files with
Posted 2019-04-08T20:11:13Z by Horia Gug
T - 3hr
Slack in complete silence, unheard of in normal circumstances. It's Friday and although you opposed it many times it's another release Friday. Devices scattered around your workplace, your office machine, a machine with IE11 two to three iPhone models, couple of Android phones, there's notches there's no notches you got everything covered.
Check lists close to done 99% green, couple of more bugfixes soon coming in, it's now:
T - 2hr
You start reading the bug tickets, you know them by heart, check the pull requests, tests passing, every thing's as you'd like it to be. So you start spinning up that testing environment and plan out those final last checks. The road ahead couldn't be clearer in your mind.
You are half way through your mental check list, it's far too late for spreadsheets now, in your head every possible area of the application is mapped out and there's a check box next to each component just waiting for that check-mark.
The slack notification sound pops up, it's a developer, without a moment's hesitation you open it and read:
You respond hastily and with typos:
You close down Slack, your focus is completely set on the mental check list, you've done this a million times before, only this time everything should work, everything must work .. everything seems like it works, it is now:
T - 1hr
Check list done, the sigh of relief is cut short by a message from the release manager:
You ponder, what could fingers crossed mean? Is it meant as an expectation to find breaking points and postpone the release or is it meant as hope that nothing breaks and everything works fine? You have no time for thoughts like this! Your mindset now shifted, it's no longer about those check marks, it's no longer about making sure it works, it's now about finding out if and how it breaks.
So you starting firing the big guns, throwing punches, launching cannon balls and having a rabid cat like approach to everything but to no avail, it all works, it all appears to work, you check the bug logging tool, nothing new, nothing escalated, no comments.
You overhear your team mates saying.
The decision is made, it is now time to press the button, it's release time, it's:
T - 0:
It's gone out, there's relief, there's joy, excitement but some anxiety lingers. Your work mates are in the kitchen having beer so you join in. There's talks of anything but software, the atmosphere is relaxed but you somehow can't breathe. You walk outside, grab some air, open social media and try to take your mind off everything, it is way past time to go home already, so you go back to grab your stuff.
On your way up you finally realize the weekend is here and there's so much you could do, all the stress and anxiety somehow washed away by these liberating emotions, you quickly go back to your desk, open your machine and while it boots you are discretely shaking from the excitement of all the events you are just soon to discover and possibly attend.
The machine loads up and it still has the app opened, so you grab your mouse, you hover the
So you click it, you don't breathe, you don't move you're just standing there looking at how beautifully it crashes, it all crashes, just like the Agitato part of a Rachmaninoff piece all the parts are just making noise, it is now:
Posted 2019-02-19T20:49:06Z by Horia Gug
You might encounter this problem as I have when I was moving away from using Windows as my main Operating System, looking to install a linux based distribution. The issue with having dynamic disks is that the the new OS system you want to install will not recognise them, and you cannot proceed with the install or resize them or anything.
WARNING: Following this guide will result in deleting all of the data on your hard drive. Make sure that your data is backed up before proceeding.
What do you need
If your use case is the same as mine, moving from Windows to another OS it's best that you have 2 USB pen drives ready, but don't fret if you just have one USB drive it will just make the process longer. So basically what you need is:
Congratulations your disk is now just a basic (b..) disk! You can proceed now with installing another OS on your machine just fine. You can:
Posted 2019-02-17T17:38:47Z by Horia Gug
Many To Many relationship in Flask App using SQLAlchemy Flask-WTForm and QuerySelectMultipleField
In this example we'll be using two entities,
The many to many relationship adds an association table between the two model classes, this helper table is strongly recommended to not be a model but an actual table.
Let's start with our models:
The association table
However just having an association table is not enough to connect the two entities together so the
Remember to migrate and update your db after making alterations.
Next let's move on to our forms. We'll be focusing on the form for creating a post and associating many categories to it.
Moving on to the view function:
Nothing too fancy here, we create a new post with the data inputted in the form, and then append each of the selected categories to it and save it in the db.
Lastly the html file. Simply:
The implementation of the create category form and view goes along the same lines so I'll leave it for the readers homework.
Posted 2019-02-16T19:18:14Z by Horia Gug
Welcome to my blog! The idea for this sparked as a side project for me to learn flask but since deployment was a chapter in my learning path it got published!
I'm a software enthusiast currently working as a quality assurance automation specialist by day and software developer by night, currently living in Helsinki.
Thank you for visiting and enjoy!