File: _header.js

package info (click to toggle)
libjs-tv4 1.2.7%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 5,464 kB
  • ctags: 515
  • sloc: makefile: 16
file content (145 lines) | stat: -rw-r--r-- 3,797 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
"use strict";

//need to declare these for node and modern browsers
var tv4;
var assert;

if (typeof process === 'object' && typeof process.cwd !== 'undefined') {
	// NodeJS
	tv4 = require('./../').tv4;
	assert = require('proclaim');
	require('source-map-support').install();

	var fs = require('fs');
	var getJSON = function (file) {
		var json;
		try {
			json = JSON.parse(fs.readFileSync(file, 'utf8'));
		}
		catch (e) {
			assert.fail(e, null, file + ': ' + String(e), 'getJSON');
		}
		assert.isObject(json, file);
		return json;
	};
	assert.isFile = function(file, msg) {
		if (!fs.existsSync(file)){
			assert.fail(false, true, msg + ': missing file ' + file, 'existsSync');
		}
	};

	describe('Verify package definition files', function (){
		var pkg;
		var component;
		var bower;
		it('pkg', function () {
			pkg = getJSON('./package.json');

			assert.property(pkg, 'main', 'main');
			assert.isFile(pkg.main, 'main');
		});
		it('component', function () {
			component = getJSON('./component.json');

			assert.property(component, 'main', 'main');
			assert.isFile(component.main, 'main');

			component.scripts.forEach(function(name) {
				assert.isFile(name, 'scripts');
			});
		});
		it('bower', function () {
			bower = getJSON('./bower.json');

			assert.property(bower, 'main', 'main');
			assert.isFile(bower.main, 'main');

			// should verify ignore field
		});
	});
}
else if (typeof window !== 'undefined') {
	// import for browser, use from IE7/8 global bypass
	assert = window.refs.assert;
	tv4 = window.refs.tv4;
}

//check if we got everything
if (!tv4) {
	throw new Error('tv4 not found');
}
if (!assert) {
	throw new Error('proclaim not found');
}
var helper = {};
helper.dumpJSON = function (value) {
	console.log(JSON.stringify(value, null, 2));
};


beforeEach(function () {
	tv4 = tv4.freshApi();
});


//duck patch standard assert to chai
//quick-and-dirty wrappers
assert.property = function (object, property, message) {
	if (typeof object[property] === 'undefined') {
		assert.fail(object, property, message, 'have property');
	}
};
assert.notProperty = function (object, property, message) {
	if (typeof object[property] !== 'undefined') {
		assert.fail(object, property, message, 'not have property');
	}
};

assert.ownProperty = function (object, property, message) {
	if (!object.hasOwnProperty(property)) {
		assert.fail(object, property, message, 'have own property');
	}
};
assert.notOwnProperty = function (object, property, message) {
	if (object.hasOwnProperty(property)) {
		assert.fail(object, property, message, 'not have own property');
	}
};

//not ideal at all
assert.propertyVal = function (object, property, value, message) {
	assert.property(object, property, message);
	assert.strictEqual(object[property], value, message);
};
assert.propertyNotVal = function (object, property, value, message) {
	assert.property(object, property, message);
	assert.notStrictEqual(object[property], value, message);
};
assert.ownPropertyVal = function (object, property, value, message) {
	assert.ownProperty(object, property, message);
	assert.strictEqual(object[property], value, message);
};
assert.notOwnPropertyVal = function (object, property, value, message) {
	assert.notOwnProperty(object, property, message);
	assert.notStrictEqual(object[property], value, message);
};
assert.propertyValues = function (object, properties, value, message) {
	assert.isObject(object, message);
	assert.isObject(properties, message);
	//copy properties
	var props = {};
	for (var name in properties) {
		props[name] = object[name];
	}
	assert.deepEqual(props, properties, message);
};
//import when fix is pushed
assert.notOk = function (value, message) {
	if (!!value) {
		assert.fail(value, true, message, '!=');
	}
};

/* jshint -W060 */

//end of header.js