UNPKG

react-class

Version:

A carefully crafted base class for all your React components

88 lines (63 loc) 2.51 kB
'use strict'; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _ava = require('ava'); var _ava2 = _interopRequireDefault(_ava); var _autoBind = require('../../autoBind'); var _autoBind2 = _interopRequireDefault(_autoBind); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } (0, _ava2.default)('autoBind works', function (t) { var MyClass = function () { function MyClass() { _classCallCheck(this, MyClass); } _createClass(MyClass, [{ key: 'returnThis', value: function returnThis() { return this || 0; } }, { key: 'setState', value: function setState() {} }]); return MyClass; }(); var obj = new MyClass(); var unbound = obj.returnThis; var bound = (0, _autoBind2.default)(obj).returnThis; t.is(unbound(), 0, 'unbound'); t.true(bound() === obj, 'bound'); }); (0, _ava2.default)('autoBind filter works', function (t) { var MyClass = function () { function MyClass() { _classCallCheck(this, MyClass); this.name = 'myclass'; } _createClass(MyClass, [{ key: 'returnThis', value: function returnThis() { return this || 0; } }, { key: 'notBound', value: function notBound() { return this || 1; } }, { key: 'setState', value: function setState() {} }]); return MyClass; }(); var obj = new MyClass(); var unbound = (0, _autoBind2.default)(obj, { notBound: true }).notBound; t.is(unbound(), 1, 'unbound'); var boundObj = (0, _autoBind2.default)(obj, function (name) { return name !== 'notBound'; }); var returnThisBound = boundObj.returnThis; var notBound = boundObj.notBound; t.is(returnThisBound(), boundObj, 'returnThisBound'); t.is(notBound(), 1, 'notBound'); });