Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "jest"
I work for a company that develops a variety of software solutions for companies of varying sizes. The company has three people in charge, and small teams that each worked on a certain project. 9 months ago I joined the company as a junior developer, and coincidentally, we also started working on our biggest project so far - an online platform for buying groceries from a variety of vendors/merchants and having them be delivered to your doorstep on the same day (hadn't been done to this scale in Estonia yet). One of the people from management joined the team working on that. The company that ordered this is coincidentally being run by one of the richest men in Estonia. The platform included both the actual website for customers to use, a logistics system for routing between the merchants, the warehouse, and the customers, as well as a bunch of mobile apps for the couriers, warehouse personnel, etc. It was built on Node.js with Hapi (for the backend stuff), Angular 2 (for all the UIs, including the apps which are run through a WebView wrapper), and PostgreSQL (for the database). The deadline for the MVP we (read: the management) gave them, but we finished it in about 7 months in a team of five.
The hours were insane, from 10 AM to 10 PM if lucky. When we weren't lucky (which was half of the time, if not more), we had to work until anywhere from 12 PM to 3 AM, sometimes even the whole night. The weekends weren't any better, for the majority of the time we had to put in even more extra hours on the weekends. Luckily, we were paid extra for them, but the salary was no way near fair (the majority of the team earned about 1000€/mo after taxes in a country where junior developers usually earn 1500€/month). Also because of the short deadline given to us, we skipped all the important parts like writing tests, doing CI, code reviews, feature branching/PR's, etc. I tried pushing the team and the management to at least write tests and make feature branches/PRs, but the management always told me that there wasn't enough time to coordinate and work on all that, that we'll do that after launching the MVP, etc. We basically just wrote features, tested them by hand, and pushed into the "test" branch which would later get tested and merged into master.
During development, one of the other juniors managed to write the worst kind of Angular code you could imagine - enormous amounts of duplication, no reusable components (every view contained the everything used in the view, so popups and other parts that should logically be reusable were in every view separately), fuck - even the HTML was broken (the most memorable for me were the "table > tr > div > td" ones, but that's barely scratching the surface). He left a few months into the project, and we had to build upon his shit, ever so slightly trying to fix the shit he produced. This could have definitely been avoided if we did code reviews.
A month after launching the MVP for internal testing, the guy working on the logistics system had burned out and left the company (he's earning more than twice the salary he got here, happy for him, he is a great coder and an even better team player). This could have been avoided if this project had been planned better, but I can't really blame them, since it was the first project they had at this scale (even though they had given longer deadlines for projects way smaller than this).
After we finished and launched the MVP, the second guy from management joined, because he saw we needed extra help. Again I tried to push us into investing the time to write tests for the system (because at this point we had created an unstable cluster fuck of a codebase), but again to no avail. The same "no time, just test it manually for now, we'll do that later when we have time" bullshit from management.
Now, a few weeks ago, the third guy from management joined. He saw what a disaster our whole project was. Him joining was simply a blessing from the skies. He started off by writing migrations using sequelize. I talked to him about writing tests and everything, and he actually listened. He told me that I'm gonna be the one writing them, and also talked to the rest of management about it. I was overjoyed. I could actually hear the bitterness in the voices of the rest of management when they told me how to write the tests, what to test, etc. But I didn't give a flying rat's ass, I was hapi.
I was told to start off by writing a smoke test for the whole client flow using Puppeteer. I got even happier, since I was finally able to again learn new things (this stopped at about 4 or 5 months into the project).
I'm using jest as the framework and started writing the tests in TypeScript. Later I found a library called jest-extended, but it didn't have type defs, so I decided to write them and, for the first time in my life, contribute to the open source community.20
With all the major library/framework overhauls in the JS community, I feel we may need to start versioning in our resumes:
Due to popular demand (and we being unable to produce a smooth performance out of JavaFX), we decided to switch to Electron for devRantFX collab. It is now called devRantron!
Relevant collab: https://devrant.io/collabs/420025/
Under the hood we are using the following techs:
- React (ReactJS, Redux, React-Router)
- ES6 and Webpack
If you have knowledge about React-native or VueJS, you should be able to understand the code (eventually). If you want to contribute let me know! I will add you to our slack group :)12
I now know why people don't write tests.
Been trying to get started with React unit tests for weeks now.
Hope Driven Development FTW.11
Sometimes I have really loose the will to live and find myself face palming multiple times.
I added live chat software a web frontend for a client. Very easy job that consisted of pasting in some embed code. The actual software is very good and has native ios/andriod apps - something specifically requested.
I got a call from my client about an hour ago, saying there is a "serious issue with the live chat".
My client stated the live chat won't work when his staff go home. He asked me what my solution to this was.
Saying "wtf" many times to myself I directed him to a settings within the chat software i.e. an "away mode" where an email is sent when no chat agents are available.
This apparently wasn't good enough and said I hadn't followed his brief of "adding life chat software to the website", which I had.
After a lengthy discussion I found the root of his frustration. He'd signed a contract with a client of his own, stating there would be 24/7 support via live chat on the website.
Obviously there a huge difference between adding a chat widget to a website and committing to having it manned 24/7 :)
After a further 10 minutes of trying push the blame on myself, the client insisted of having the chat software "appear" as someone was always online, even when they are not (people need to sleep ya know!).
Bu design, the chat software requires at least one agent be logged in before the chat status changes to "online" - why wouldn't it.
After a little while I was seriously wondering why I'm involved in this conversation. I jokingly stated: "Well you could always install Andriod/iOS app on your phone, login and permanently leave it running in background. You'd get lots of notifications, but the site would say the live is always online".
The latter was something I said in jest. To my surprise the client said he'd do that on his own phone going forwards. He actually thanked me for my "resourcefulness", lol.
I'm looking at the same dashboard now and there are 407 pending chat requests - his phone must literally be blowing up notifications :)5
I seriously do not understand the rants against Windows.
I love Windows 10 (got as free upgrade from MS), and have no issues with MacOS or Linux OS. I use them as well but do all serious work on Windows.
All my life, I have worked on business / commercial side and picked up Web development in last couple of years. I started using computers on DOS in 1992, and shifted to Windows 3.0 in 1995. There was no Mac or MacOS back then.
For serious work, I purchased a old Dell Precision M4700 workstation grade laptop with quad-core i7, at throwaway price, got 32GB RAM, 2.4TB (1x2 TB + 400gb) of SSD on super sale online, and installed it myself. It easily supports dual 4k monitors.
Git-bash on windows allows all the necessary linux command line on windows. Though not tried, Windows 10 allows embedded Ubunutu with linux terminal. Web development tools like - VSCode, git, github / bitbucket clients, NVM/Node, React / Redux / Webpack / Gatsby / Jest, REST clients, GraphQL client and server, Graph Server, Chrome PWA / Chrome Dev Tools, http/Websocket/WebRTC interception, Google Firebase SDKs, AWS sdks, cloud utilities, CI/CD tools work flawlessly. Windows even has its own package manager for applications.31
Been a while since I've posted, so I might as well look into getting active again, so hello old friends and the new guys :)
Ever since finishing my bachelors, I've been mostly working frontend with React and Jest testing. Might as well throw in my workplace.7
So, I just realised that a contribution I made to an open source project 12 days ago had gotten accepted 3 days ago. I'm so ecstatic over this!
Now I just remembered about that, and wondered if it got any comments or anything, and it turned out that they had accepted my PR and it had already been put into a release 3 days ago
I can't contain myself right now, it was my first open-source contribution, and it just feels good to know that I somehow helped some people by giving them type definitions :D
Jest addin for vscode:
- I love how it's running all the time testing my code
- Doesn't show line numbers where the problems are (may be a babel/promises issue perhaps)
- Doesnt have coloured text (normal jest runner does)
- I can't get debugging working (I'm sure I will eventually)
Best: a school project with tons of cool stuff: NodeJS, Express, jwt, Jest (unittests), VueJS, pwa, Mongo, Python, OpenCV and tesseract
Worst: the teacher complaining all the time on the background colour of the website6
If Facebook does actually get "deleted" (shutdown), what happens to it's open source projects like yarn, jest, react?11
Those last couple of hours on a Friday afternoon in the office dragged out longer than the ending scene of part 3 of LOTR. Only I am pretty sure that the hobbits did not have circus music doodling in their heads while trying to write jest tests.9
What I'm doing now, writing a JS library for a simple kitchen timer (like, something that can be wound up, is ticking, can be paused, etc). Here's a list of neat stuff I've learned:
Polyfilling as a lib author (I decided against it).
Packaging the lib (using Rollup, ES6 modules are totes cool).
Using flow to add static typing in strategic places (started appreciating types in JS since reading up on functional programming).
Modelling state and transitions using an explicit state machine. (Fucking finally. There's usually an implicit state machine somewhere, only spread out all over the app...)
Using mostly side-effect free methods, being very explicit about when and why things are mutated).
Test-first/TDD (ish) using Jest and the awesome Wallabyjs.
Freeing up mental capacity by letting Prettier format my code for me (it was hard to let go but totally worth it).
Started using git.
Did all work on Ubuntu after pretty much a lifetime of Windows (initially to separate work from gaming) and finally swapped MS Visual Studio for Atom.
When it's finished I'm going to publish it on GitHub, which will also be a first for me. Might try out some CI platform while I'm at it.
tl;dr: wrote some js, felt good2
TLDR: fuck this plugin.
Longer version: I recently had to implement an external Vue plugin to upload files. That gave me a good headache already, mostly due to the half Chinese, half Google Translate English documentation. I now found out that testing the implemented component may be impossible. Turns out it overwrites the $route and $router variables and makes them read-only. Which won't even let me create a shallow mount of my implementation. Fuck this shit, I'm getting a drink!4
May I have access to your backend? - that joke never gets old and makes me seem like a big weirdo. Which I'm not. At all.
Just a couple of things I'm thinking,
Alacritty in my main terminal, but I have a Hyper terminal (secondary, since it's pretty but not as fast) for thoughts.
I'm not even sure if you can call them thoughts. I would say mental diarrhea.
Most of the sentences are ridden with expletives, and very emotional. I attached a picture where you can see that there is
* some special characters, result of me light smashing the keyboard (I say light as in, I'm very angry but not as angry to not appreciate my single computer).
* a final sentence with some really nasty message.
* a lot of gibberish as well, don't use this as a spanish learning tool.
If you're curious about what's causing me grief, it's trying to make jest work with a vue-cli existing project. I encountered a couple of gotchas that ground my gears.
I estimated this bitch ass task to take like 2 hours tops, but I'm like 4 hours on this already, so I'm halfway broken.
Also, another comment:
While seeing the picture of the dutch devrant meetup, I think to myself "man, there's no way I would not feel awkward in that situation.
But then I noticed the beer and was like "oh, that helps".2
Should i be posting on devRant to hire a fellow devRanter for a project in my company? (temporarily but may become constant if we click well)
Looking to hire a mostly frontend react dev.
The project is about graph visualisation and traversal.
Our stack is python (flask, appbuilder, SQLalchemy), react, react d3-graph, jest.
Must know how to use git and pull-requests.
(The software is based on Apache superset)
The code is a bit of a mess. But let's be honest, which big project isn't?12
I just want to use Jest to unit test my Typescript classes, but that appears to be impossible!
Anyone know how to go about unit testing an application that is made up of:
(React using Typescript of course).
Electron has its own framework (Spectron), people seem to use Mocha with Node, React has its own tools like React testing library (and testing UI components will probably end me) and Typescript seems to play best with Jest - but a special Typescript flavour of Jest called ts-jest is preferable because the only other option is having Babel and its Typescript support that doesn't type check.
I want to beg for the sweet release of death.4
I have 5 months working on a project that I was assigned and I have already worked with React with Redux, Sagas, Reselect, React Native, Jest, Protractor and PHP.4
So my job is now starting to spin back around towards more development styles roles.
Currently I am in the process of learning about an internal Asp.Net app for managing invoicing.
A .net core app to manage changes to rate card prices.
And a small python app which runs 40+ sql queries and writes the results to a spreadsheet.
This is the jest time I’ve used python, and I have to say I really like it4
Somethings I just want to throw my pc around the office because those f*cking unit tests that don't want to work😤🤬😡
Snapshot testing give me the chilliest of chills because for all that matters we have to assume once that what one's done is uttermostly correct
I mean to err is human right
Jest/enzym unit testing: My lead developer says using shallowWithStore instead of shallow on one incidence would introduce CPU overhead thus I MUST stop whatever I'm doing and fix the pull request. Is that normal?
.... but first let me "npm init -y" and "npm i jest" (as the tutorial suggests) real quick in my git project ... whoops😯😐😶🤨 ... woah, ok ... 5000 added files, shit, dependencies 🙄... delete all ... git error😐😥
delete folder manually😪😅
resuming paused tutorial: "and if you've got a git repository, just install jest globally, do not do this in your repo!"
.... just happened to me😑😅2
Writing jest test cases for a MongoDB server app.
I noticed, inside the testEnvironment file, it uses ‘require’ instead of ‘import’.
I changed it to ‘import’...🤔
Somehow it pops out syntaxErrors.🤦♂️
In my actual .test.js file, I use import all the time, never had any issue.
The Babel transform and babel-jest are also in the right place.
Anyone know why?4