mirror of
https://github.com/pebble-dev/clay.git
synced 2026-08-29 13:26:59 -04:00
47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var assert = require('chai').assert;
|
|
var ApiItem = require('../../../src/scripts/lib/clay-item');
|
|
var fixture = require('../../fixture');
|
|
var items = require('../../../src/scripts/lib/items');
|
|
|
|
/**
|
|
* @param {Object} object
|
|
* @param {Array} properties
|
|
*/
|
|
function checkReadOnly(object, properties) {
|
|
properties.forEach(function(property) {
|
|
assert.strictEqual(
|
|
Object.getOwnPropertyDescriptor(object, property).writable,
|
|
false
|
|
);
|
|
});
|
|
}
|
|
|
|
describe('ApiItem', function() {
|
|
it('defines read-only properties', function() {
|
|
var properties = [
|
|
'id',
|
|
'appKey',
|
|
'config',
|
|
'$element',
|
|
'$manipulatorTarget',
|
|
'on',
|
|
'one',
|
|
'off',
|
|
'trigger',
|
|
'initialize'
|
|
];
|
|
var apiItem = new ApiItem(fixture('input'));
|
|
checkReadOnly(apiItem, properties);
|
|
});
|
|
|
|
it('attaches the manipulator methods', function() {
|
|
Object.keys(items).forEach(function(itemName) {
|
|
var apiItem = new ApiItem(fixture(itemName));
|
|
var manipulator = items[itemName].manipulator;
|
|
checkReadOnly(apiItem, Object.keys(manipulator));
|
|
});
|
|
});
|
|
});
|