Sha256: e2e29da9dbf80e8ae7f94e0a3d045a44169d401d45ffe04d41249a7553a0b767

Contents?: true

Size: 1.67 KB

Versions: 15

Compression:

Stored size: 1.67 KB

Contents

var $;

require('observable/vendor/shims/accessors.js');

$ = require('jquery');

describe('Object #defineProperty', function() {
  describe('on dom elements', function() {
    var object, spy;

    spy = object = null;
    beforeEach(function() {
      object = document.createElement('domo');
      document.body.appendChild(object);
      return spy = sinon.spy();
    });
    it('should define property', function(done) {
      return Object.defineProperty(object, 'kun', {});
    });
    it('should define property getter', function(done) {
      var getter;

      getter = sinon.stub().returns(42);
      Object.defineProperty(object, 'kun', {
        get: getter
      });
      expect(object.kun + 1).toBe(43);
      return expect(getter.called).toBe(true);
    });
    return it('should define property setter', function(done) {
      Object.defineProperty(object, 'kun', {
        set: spy
      });
      object.kun = 10;
      return expect(spy.calledWith(10)).toBe(true);
    });
  });
  return describe('off dom elements', function() {
    beforeEach(function() {
      this.object = {};
      return this.spy = sinon.spy();
    });
    it('should not define property setter', function(done) {
      var _this = this;

      return expect(function() {
        return Object.defineProperty(_this.object, 'kun', {
          set: _this.spy
        });
      }).toThrow();
    });
    return it('should define property getter', function(done) {
      var getter;

      getter = sinon.stub().returns(42);
      Object.defineProperty(this.object, 'kun', {
        get: getter
      });
      expect(this.object.kun + 1).toBe(43);
      return expect(getter.called).toBe(true);
    });
  });
});

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
ende-0.4.25 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.24 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.23 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.22 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.21 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.15 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.14 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.13 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.12 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.11 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.10 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.9 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.8 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.7 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js
ende-0.4.6 vendor/components/indefinido-observable/spec/vendor/accessors_spec.js