@@ 1-86 (lines=86) @@ | ||
1 | var assert = require('chai').assert, |
|
2 | GedcomX = require('../../'); |
|
3 | ||
4 | describe('Field', function(){ |
|
5 | ||
6 | it('Create plain', function(){ |
|
7 | assert.instanceOf(new GedcomX.Field(), GedcomX.Field, 'An instance of Field is not returned when calling the constructor with new.'); |
|
8 | assert.instanceOf(GedcomX.Field(), GedcomX.Field, 'An instance of Field is not returned when calling the constructor without new.'); |
|
9 | }); |
|
10 | ||
11 | it('Create with JSON', function(){ |
|
12 | var field = GedcomX.Field({ |
|
13 | id: 'nameField', |
|
14 | type: 'http://gedcomx.org/Name', |
|
15 | values: [ |
|
16 | { |
|
17 | type: 'type', |
|
18 | labelId: 'labelId', |
|
19 | text: 'Text', |
|
20 | confidence: 'http://gedcomx.org/High', |
|
21 | datatype: 'data type', |
|
22 | resource: '#resource' |
|
23 | } |
|
24 | ] |
|
25 | }); |
|
26 | assert.equal(field.getId(), 'nameField'); |
|
27 | assert.equal(field.getType(), 'http://gedcomx.org/Name'); |
|
28 | assert.equal(field.getValues().length, 1); |
|
29 | var fieldValue = field.getValues()[0]; |
|
30 | assert.equal(fieldValue.getType(), 'type'); |
|
31 | assert.equal(fieldValue.getLabelId(), 'labelId'); |
|
32 | assert.equal(fieldValue.getText(), 'Text'); |
|
33 | assert.equal(fieldValue.getConfidence(), 'http://gedcomx.org/High'); |
|
34 | assert.equal(fieldValue.getDataType(), 'data type'); |
|
35 | assert.equal(fieldValue.getResource(), '#resource'); |
|
36 | }); |
|
37 | ||
38 | it('Build', function(){ |
|
39 | var field = GedcomX.Field() |
|
40 | .setId('nameField') |
|
41 | .setType('http://gedcomx.org/Name') |
|
42 | .addValue({ |
|
43 | type: 'type', |
|
44 | labelId: 'labelId', |
|
45 | text: 'Text', |
|
46 | confidence: 'http://gedcomx.org/High', |
|
47 | datatype: 'data type', |
|
48 | resource: '#resource' |
|
49 | }); |
|
50 | assert.equal(field.getId(), 'nameField'); |
|
51 | assert.equal(field.getType(), 'http://gedcomx.org/Name'); |
|
52 | assert.equal(field.getValues().length, 1); |
|
53 | var fieldValue = field.getValues()[0]; |
|
54 | assert.equal(fieldValue.getType(), 'type'); |
|
55 | assert.equal(fieldValue.getLabelId(), 'labelId'); |
|
56 | assert.equal(fieldValue.getText(), 'Text'); |
|
57 | assert.equal(fieldValue.getConfidence(), 'http://gedcomx.org/High'); |
|
58 | assert.equal(fieldValue.getDataType(), 'data type'); |
|
59 | assert.equal(fieldValue.getResource(), '#resource'); |
|
60 | }); |
|
61 | ||
62 | it('toJSON', function(){ |
|
63 | var data = { |
|
64 | id: 'nameField', |
|
65 | type: 'http://gedcomx.org/Name', |
|
66 | values: [ |
|
67 | { |
|
68 | type: 'type', |
|
69 | labelId: 'labelId', |
|
70 | text: 'Text', |
|
71 | confidence: 'http://gedcomx.org/High', |
|
72 | datatype: 'data type', |
|
73 | resource: '#resource' |
|
74 | } |
|
75 | ] |
|
76 | }, field = GedcomX.Field(data); |
|
77 | assert.deepEqual(field.toJSON(), data); |
|
78 | }); |
|
79 | ||
80 | it('constructor does not copy instances', function(){ |
|
81 | var obj1 = GedcomX.Field(); |
|
82 | var obj2 = GedcomX.Field(obj1); |
|
83 | assert.strictEqual(obj1, obj2); |
|
84 | }); |
|
85 | ||
86 | }); |
@@ 1-64 (lines=64) @@ | ||
1 | var assert = require('chai').assert, |
|
2 | GedcomX = require('../../'); |
|
3 | ||
4 | describe('ExtensibleData', function(){ |
|
5 | ||
6 | it('Create with JSON', function(){ |
|
7 | var ed = GedcomX.ExtensibleData({ |
|
8 | id: 'edid', |
|
9 | fields: [ |
|
10 | { |
|
11 | id: 'nameField', |
|
12 | type: 'http://gedcomx.org/Name', |
|
13 | values: [ |
|
14 | { |
|
15 | type: 'type', |
|
16 | labelId: 'labelId', |
|
17 | text: 'Text', |
|
18 | confidence: 'http://gedcomx.org/High', |
|
19 | datatype: 'data type', |
|
20 | resource: '#resource' |
|
21 | } |
|
22 | ] |
|
23 | } |
|
24 | ] |
|
25 | }); |
|
26 | assert.equal(ed.getId(), 'edid', 'ID not saved properly when created with JSON'); |
|
27 | assert.equal(ed.getFields().length, 1); |
|
28 | var field = ed.getFields()[0]; |
|
29 | assert.equal(field.getId(), 'nameField'); |
|
30 | assert.equal(field.getType(), 'http://gedcomx.org/Name'); |
|
31 | assert.equal(field.getValues().length, 1); |
|
32 | var fieldValue = field.getValues()[0]; |
|
33 | assert.equal(fieldValue.getType(), 'type'); |
|
34 | assert.equal(fieldValue.getLabelId(), 'labelId'); |
|
35 | assert.equal(fieldValue.getText(), 'Text'); |
|
36 | assert.equal(fieldValue.getConfidence(), 'http://gedcomx.org/High'); |
|
37 | assert.equal(fieldValue.getDataType(), 'data type'); |
|
38 | assert.equal(fieldValue.getResource(), '#resource'); |
|
39 | }); |
|
40 | ||
41 | it('toJSON()', function(){ |
|
42 | var json = { |
|
43 | id: 'edid', |
|
44 | fields: [ |
|
45 | { |
|
46 | id: 'nameField', |
|
47 | type: 'http://gedcomx.org/Name', |
|
48 | values: [ |
|
49 | { |
|
50 | type: 'type', |
|
51 | labelId: 'labelId', |
|
52 | text: 'Text', |
|
53 | confidence: 'http://gedcomx.org/High', |
|
54 | datatype: 'data type', |
|
55 | resource: '#resource' |
|
56 | } |
|
57 | ] |
|
58 | } |
|
59 | ] |
|
60 | }, ed = GedcomX.ExtensibleData(json); |
|
61 | assert.deepEqual(ed.toJSON(), json, 'JSON export is incorrect'); |
|
62 | }); |
|
63 | ||
64 | }); |