Black Sheep Code
A nerdy looking sheep

Black Sheep Code

Various tech writings from David Johnston.


Just For Fun


How to configure Remix and mdx-bundler

I've switched this blog to using Remix and mdx-bundler to make better use of frontmatter headers

Agnostic state and service management in React

Avoid make state framework specific calls inside of your React components, and instead access them via hooks

Dependency injection when using redux

An unconventional strategy to inject the behaviour of your state management in testing contexts

Different Approaches to Form Element State Management in React

Working with lists of data for form inputs

Extensible changes

Making changes in an extensible manner avoids having to do signficant code rewrites

Why use OpenAPI?

OpenAPI is a spec for describing HTTP APIs. It has a healthy ecosystem of tooling that supports it.

Generating server and client code using OpenAPI tooling?

We'll use openapi-generators to generate a Go backend and a React frontend.

Generating MSW mocks from an OpenAPI spec.

We're using msw-auto-mock to generate MSW mocks to test our React application.

Postman and OpenAPI

Syncing Postman with our Github repo, generating queries from our OpenAPI spec

Postman and OpenAPI - Automated Tests

Postman has an automated testing feature, but how well does it work?

OpenAPI and contract tests with Jest

Using good ol' Jest to write some contract tests

OpenAPI contract tests - Performance testing

We can use a tool called jest-timing-reporter to provide a performance diff in our pull request

Black box contract testing - third party API mocking using Mockbin

We have an API that makes calls out to a third party - how do we test it?

How to effectively hire contractors

Contractors are best utilised to plow through a well defined scope of work.

I'm playing with Remix

Using Remix to generate a static blog



The case for blackbox tests

Blackbox tests do not require knowledge of the implementation details - they're a 'how the consumer sees it' style of test.

The case for splitting Cypress tests into multiple it blocks

Cypress recommends long running tests with lots of assertions. I argue that it would be helpful if we had granular visiblity of the parts of the test.

The horseshoe model for software development

I propose that the designer and the QA should be one and the same

This blog now features comments

I've add comment functionality via the Utterances plugin

Thoughts about JSON API

JSON API is an opinionated REST API structuring spec. Here's my thoughts.

Today I learned: The Etc/GMT+x timezones actually mean UTC-x

Well that's counter intuitive

User Experience reflects data the underlying data structu

I propose a variation of Conway's Law.

What is the role of QA and how should their tests fit into the development process?

If we're doing shift left testing, and developers are writing their own tests - then where does that leave QA?

Why I don't like API mocking as a necessary frontend testing strategy

A lot of state management frameworks recommend doing API mocking as the testing strategy.

I support open source: Open Collective