Skip to content

Instantly share code, notes, and snippets.

@wisniewski94
Forked from jchavarri/ES6 Class creation
Created November 29, 2021 00:36
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 wisniewski94/cf8b17dda0f2ccaff1c30fba4393129a to your computer and use it in GitHub Desktop.
Save wisniewski94/cf8b17dda0f2ccaff1c30fba4393129a to your computer and use it in GitHub Desktop.
Some tests to play with ES6 classes
// 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 class {};
assert.equal(classType, 'function');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment