A test-driven approach to learning Javascript fundamentals