Skip to content

Instantly share code, notes, and snippets.

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

Rowland I. Ekemezie rowlandekemezie

🏠
Working from home
View GitHub Profile
@rowlandekemezie
rowlandekemezie / fetchJson.test.ts
Created July 23, 2024 23:28 — forked from trvswgnr/fetchJson.test.ts
nice lil typescript fetch wrapper with errors as values
import { describe, it, expect, spyOn } from "bun:test";
import { fetchJson } from "./fetchJson";
class MockResponse {
static instanceCount = 0;
constructor(
public readonly ok: boolean,
private jsonSuccess: boolean | "bad parse",
) {
MockResponse.instanceCount++;
// Current. The request is synchronous because the former needs to finish before the later
const earning = await fetchLastMonthEarning(teacherInfo.teacher.teacherId, startDate, endDate);
const teachingHours = await fetchTeachingHours(teacherInfo.teacher.teacherId);
// Refactored. Ensures the request is run concurrently
const [ earning, teachingHours ]= await Promise.all([
fetchLastMonthEarning(teacherInfo.teacher.teacherId, startDate, endDate),
fetchTeachingHours(teacherInfo.teacher.teacherId)
])
@rowlandekemezie
rowlandekemezie / sample-test.js
Created September 2, 2019 19:41
How you can nuke beforeEach and ensure each test spec is totally isolated from others
// Define a setup function you can reuse and maybe nuke beforeEach completely.
// Your test spec is currently too simple to even require the hasle beforeEach;
function setUp() {
const props = {
strategy: null,
event: mockEvent, // You can use jest to mock
eventId: mockEventId,
ConfigLogo: null,
handleDuplicateEvent: action("select provider")
}
@rowlandekemezie
rowlandekemezie / Instructions.js
Created March 10, 2018 19:05
Update and Delete request with redux-saga
/*
1) Depending on your experience, this is all you might need to do to hook up your workflow
2) Remember, not to copy and paste. My idea is to show you how things fit it to you can tailor it to your application
GRACIAS 💪
*/
@rowlandekemezie
rowlandekemezie / range.js
Created January 29, 2018 21:53
Utility functions
// Create a range of values
function range(start, end) {
return Array.apply(null, Array(end - start + 1))
.map((_, index) => index + start);
}
@rowlandekemezie
rowlandekemezie / custom_radio_button.scss
Created January 17, 2018 18:52
My CSS trick in creating a custom radio button
input[type="radio"] {
position: absolute;
left: -9999px;
}
.label {
display: block;
position: relative;
margin-left: 0;
padding: 3px 0 3px 25px;
@rowlandekemezie
rowlandekemezie / app.js
Created October 23, 2017 11:44 — forked from acdlite/app.js
Quick and dirty code splitting with React Router v4
// getComponent is a function that returns a promise for a component
// It will not be called until the first mount
function asyncComponent(getComponent) {
return class AsyncComponent extends React.Component {
static Component = null;
state = { Component: AsyncComponent.Component };
componentWillMount() {
if (!this.state.Component) {
getComponent().then(Component => {
@rowlandekemezie
rowlandekemezie / App.js
Last active July 4, 2017 04:29
Passing up data from Child Component to Parent Component
import React from 'react';
import { render } from 'react-dom';
import ChildA from './childA.js';
import ChildB from './childB.js';
class App extends React.Component {
handleKeyUp() {
console.log('Event bubbling: Passing up data from Child to Parent component');
}
render() {
-module(assignment).
-export([perimeter/1, area/1, enclose/1, bit/1]).
% perimeter implementation
perimeter({circle, R}) ->
2 * math:pi() * R;
perimeter({rectangle, H, W}) ->
2*(H + W);
@rowlandekemezie
rowlandekemezie / Reactor.js
Created February 21, 2017 10:19
Reactor created by rowland - https://repl.it/FqqB/1
function test (num) {
var holder = num.split('');
var sum = 0, i = 0;
var count = holder.length;
while(i < count) {
if(holder[i] === '-'){
sum = sum - holder[i + 1];
i += 2;
} else{
sum += parseInt(holder[i]);