Skip to content

Instantly share code, notes, and snippets.

View mbjelac's full-sized avatar
🏠
Working from home

Marko Bjelac mbjelac

🏠
Working from home
View GitHub Profile
@mbjelac
mbjelac / test-step-output.yml
Created December 19, 2023 17:02
How to reference step output in a subsequent step if clause
name: Test step output
on:
workflow_dispatch:
inputs:
fail_value:
description: 'Should fail on > 40'
required: true
type: number
default: 0
@mbjelac
mbjelac / fe-tests-cropped.yml
Last active November 13, 2023 22:17
Github actions frontend tests (cropped)
test-frontend:
runs-on: ubuntu-latest
steps:
- uses: szenius/set-timezone@v1.2
with:
timezoneLinux: "Europe/Helsinki"
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version-file: 'ui/package.json'
@mbjelac
mbjelac / spying-api-test.spec.ts
Last active November 10, 2023 10:30
API test (spying)
// 👇 separate from other types of Jest tests
/**
* @group integration/api
*/
// imports ...
it('admin creates user', async () => {
await loginAs(Role.ADMIN); // login helper (setup 1 dummy user for each role)
// 👇 separate from other types of Jest tests
/**
* @group integration/api
*/
// imports ...
it('admin gets users', async () => {
await loginAs(Role.ADMIN); // login helper (setup 1 dummy user for each role)
@mbjelac
mbjelac / ApiTestDoubles.kt
Last active November 10, 2023 10:29
API test service config
// imports...
@Configuration // for Spring's DI setup
class ApiTestDoubles(
private val factory: ApiTestDoubleFactory
) {
// 👇 one for each top-level service
@Bean // this method's return value will be in the DI context for others to use
fun users(): Users = factory
@mbjelac
mbjelac / multiple-asserts-bad_4.spec.ts
Last active April 26, 2022 20:51
multiple-asserts-bad_4
test("turns on credit check", () => {
const result = initializeCreditThingy(42, "boo!!!");
expect(result.creditCheck).toBe(true);
});
test("does that other thing", () => {
const result = initializeCreditThingy(42, "boo!!!");
@mbjelac
mbjelac / multiple-asserts-bad_3.spec.ts
Last active April 26, 2022 20:51
multiple-asserts-bad_3
test("turns on credit check ... and also that other thing", () => {
const result = initializeCreditThingy(42, "boo!!!");
expect({
creditCheck: result.creditCheck,
spamCounter: result.spamCounter
})
.toEqual({
creditCheck: true,
@mbjelac
mbjelac / multiple-asserts-bad_2.spec.ts
Last active April 26, 2022 20:51
multiple-asserts-bad_2
test("turns on credit check ... and also that other thing", () => {
const result = initializeCreditThingy(42, "boo!!!");
expect([
result.creditCheck,
result.spamCounter
])
.toEqual([true, 0]);
});
@mbjelac
mbjelac / multiple-asserts-bad_1.spec.ts
Last active April 26, 2022 20:51
multiple-asserts-bad_1
test("turns on credit check ... and also that other thing", () => {
const result = initializeCreditThingy(42, "boo!!!");
expect(result.creditCheck).toBe(true);
expect(result.spamCounter).toBe(0);
});
@mbjelac
mbjelac / typescript-default-params.spec.ts
Last active October 9, 2020 17:02
A test demonstrating Typescript does not support "deep" default params, i.e. the default params do not extend to object properties.
interface Params {
foo?: string;
bar?: number;
}
function doStuff(params: Params = { foo: "Default", bar: 42}): any[] {
return [params.bar, params.foo];
}
describe("default params", () => {