Skip to content

Instantly share code, notes, and snippets.

View derekshi's full-sized avatar

Derek Shi derekshi

  • Point Inside, Inc.
View GitHub Profile
@derekshi
derekshi / jestGlobalMocks.ts
Created November 10, 2017 01:32
Some mock objects for Angular projects using Jest testing framework
const mock = () => {
let storage = {};
return {
getItem: key => key in storage ? storage[key] : null,
setItem: (key, value) => storage[key] = value || '',
removeItem: key => delete storage[key],
clear: () => storage = {},
};
};
@derekshi
derekshi / setupJest.ts
Created November 10, 2017 01:27
setup Jest testing framework for Angular project
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
@derekshi
derekshi / preprocessor.js
Created November 10, 2017 01:25
preprocessor script for using Jest testing framework on Angular projects
const process = require('ts-jest/preprocessor.js').process;
const TEMPLATE_URL_REGEX = /templateUrl:\s*('|")(\.\/){0,}(.*)('|")/g;
const STYLE_URLS_REGEX = /style(Url)?s:\s*\[\s*(require\()?((?:'|").*\s*(?:'|")\)?).*\s*.*\]/g;
const ESCAPE_TEMPLATE_REGEX = /(\${|\`)/g;
module.exports.process = function (src, path, config, transformOptions) {
if (path.endsWith('.html')) {
console.log('preprocessing ' + path);
src = src.replace(ESCAPE_TEMPLATE_REGEX, '\\$1');
@derekshi
derekshi / csv-downloader.ts
Last active July 2, 2020 10:54
ng2-csv-downloader (Angular2 CSV Downloader): Simple Angular 2 Component for downloading any data as csv.
import {Component, Input, Output, EventEmitter, Renderer} from '@angular/core';
@Component({
selector: 'csv-downloader',
template: `
<button class='btn btn-info' (click)="build()">{{downloaderName}}</button>
`
})
export class CsvDownloader {
@Input() downloaderName: string = 'Download CSV';
@Input() headers: string[] = [];