Skip to content

Instantly share code, notes, and snippets.

@dwilt
Created October 27, 2016 22:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dwilt/92695633f94a9157d91477282568a78a to your computer and use it in GitHub Desktop.
Save dwilt/92695633f94a9157d91477282568a78a to your computer and use it in GitHub Desktop.
Gist to show off I'm not a total noob at ES6
// 22: class - creation
// To do: make all tests pass, leave the assert lines unchanged!
describe('class creation', () => {
it('is as simple as `class XXX {}`', function() {
class TestClass {}
const instance = new TestClass();
assert.equal(typeof instance, 'object');
});
it('class is block scoped', () => {
{class Inside {}}
assert.equal(typeof Inside, 'undefined');
});
it('special method is `constructor`', function() {
class User {
constructor(id) {
this.id = id;
}
}
const user = new User(42);
assert.equal(user.id, 42);
});
it('defining a method is simple', function() {
class User {
writesTests() {
return false;
}
}
const notATester = new User();
assert.equal(notATester.writesTests(), false);
});
it('multiple methods need no commas (opposed to object notation)', function() {
class User {
wroteATest() { this.everWroteATest = true; }
isLazy() { return !this.everWroteATest; }
}
const tester = new User();
assert.equal(tester.isLazy(), true);
tester.wroteATest();
assert.equal(tester.isLazy(), false);
});
it('anonymous class', () => {
const classType = typeof (() => {});
assert.equal(classType, 'function');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment