Skip to content

Instantly share code, notes, and snippets.

View HonzaMac's full-sized avatar

Honza Machala HonzaMac

View GitHub Profile
@HonzaMac
HonzaMac / isOdd.test.js
Created April 19, 2022 19:53
Run node:test runner via node isOdd.test.js
// Run via: node isOdd.test.js
import test from 'node:test'
import assert from 'assert'
const isOdd = (val) => val % 2
test('isOdd', () => {
[[1, true], [2, false]].forEach(([input, expected]) => {
test(`Is Odd for value ${input}`, () => {
assert.equal(isOdd(input), expected)
@HonzaMac
HonzaMac / userService.ts
Last active December 30, 2021 23:21
user entity in yup schema
import { object, string } from "yup"
export const userSchema = object({
id: string().uuid(),
username: string().required(),
email: string().email().required(),
country: string().required(),
department: string().required(),
divisionName: string().required(),
city: string().optional(),
@HonzaMac
HonzaMac / createUser.ts
Last active December 30, 2021 23:21
faker entity via yup schema
import { User, userSchema } from "../../src/userService"
import { fake } from "yup-schema-faker"
export const createUser = (data: Partial<User> = {}): User => {
const fakeSchemaData = fake(userSchema.noUnknown()) as User;
return {
...fakeSchemaData,
...data,
}
@HonzaMac
HonzaMac / createUser.ts
Last active December 28, 2021 21:39
basic short then test case
import * as faker from "faker"
import { User } from "../../src/userService"
export const createUser = (data: Partial<User> = {}) : User => {
const fakeData: User = {
id: faker.datatype.uuid(),
username: faker.name.findName(),
email: faker.internet.email(),
country: faker.address.country(),
department: faker.company.companyName(),
@HonzaMac
HonzaMac / createUser.ts
Created December 28, 2021 20:47
createUser with fake data
import * as faker from "faker"
import { User } from "../../src/userService"
export const createUser = (data: Partial<User> = {}) => {
const fakeData: User = {
username: faker.name.findName(),
email: faker.internet.email(),
country: faker.address.country(),
department: faker.company.companyName(),
divisionName: faker.name.jobArea(),
@HonzaMac
HonzaMac / basic-short-given-test-case.ts
Created December 28, 2021 20:08
optimized test case in part of Given
import { updateUser } from "./userService"
import { createUser } from "../tests/helpers/createUser"
describe('UserService - updateUser', () => {
it('should update department', () => {
// GIVEN
const user = createUser()
const updateData = {
department: 'IT Support',
}
@HonzaMac
HonzaMac / createUser.ts
Created December 26, 2021 21:43
basic factory method for creating entity user
export const createUser = () => ({
id: 'e2f5a82a-3f2e-4b6d-b4d2-086afaa08f8a',
username: 'john',
email: '[email protected]',
country: 'France',
department: 'IT Services',
divisionName: 'IT',
});
@HonzaMac
HonzaMac / basic-long-test-case.ts
Created December 26, 2021 20:59
initial test case prior optimization
import { updateUser } from "./userService"
describe('UserService - updateUser', () => {
it('should update department', () => {
// GIVEN
const user = {
id: 'e2f5a82a-3f2e-4b6d-b4d2-086afaa08f8a',
username: 'john',
email: '[email protected]',
country: 'France',
@HonzaMac
HonzaMac / faker-seed-value.js
Created December 21, 2021 15:48
Faker seed value
const seedValue = 100;
faker.seed(seedValue);
console.log(faker.name.findName());
// Vždy vypíše stejné jméno: "Eva Jenkins"
@HonzaMac
HonzaMac / setupFaker.js
Created December 21, 2021 15:30
faker-replaying-seed-from-ENV
import faker from 'faker';
const setupFaker = () => {
const replayedSeed = parseInt(process.env.FAKER_SEED, 10) || 0;
const seedValue = replayedSeed || Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);
faker.seed(seedValue);
if (replayedSeed) {
console.warn(`Replaying test with FAKER_SEED=${replayedSeed}`);
} else {
console.info(`FAKER_SEED=${seedValue}`);