Code Duplication    Length = 64-86 lines in 2 locations

test/records/Field.js 1 location

@@ 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
});

test/records/ExtensibleData.js 1 location

@@ 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
});