Reference examples of various JavaScript design patterns and testing strategies for those design patterns