Skip to content

Commit 5bac2a3

Browse files
nikkufake-join[bot]
authored andcommitted
test(read): verify additional type import error cases
1 parent 7cb0b57 commit 5bac2a3

File tree

1 file changed

+85
-20
lines changed

1 file changed

+85
-20
lines changed

test/spec/reader.js

Lines changed: 85 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -435,32 +435,97 @@ describe('Reader', function() {
435435
});
436436

437437

438-
it('collection / xsi:type / unknown type', async function() {
438+
describe('unknown type', function() {
439439

440-
var datatypeModel = createModel([ 'datatype' ]);
440+
it('single', async function() {
441441

442-
// given
443-
var reader = new Reader(datatypeModel);
444-
var rootHandler = reader.handler('dt:Root');
442+
var datatypeModel = createModel([ 'datatype' ]);
445443

446-
var xml =
447-
'<root xmlns="http://datatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
448-
'<otherBounds xsi:type="Unknown" y="100" />' +
449-
'</root>';
444+
// given
445+
var reader = new Reader(datatypeModel);
446+
var rootHandler = reader.handler('dt:Root');
450447

451-
var err;
448+
var xml =
449+
'<root xmlns="http://datatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
450+
'<bounds xsi:type="Unknown" y="100" />' +
451+
'</root>';
452452

453-
// when
454-
try {
455-
await reader.fromXML(xml, rootHandler);
456-
} catch (_err) {
457-
err = _err;
458-
}
453+
var err;
459454

460-
// then
461-
expect(err).to.exist;
455+
// when
456+
try {
457+
await reader.fromXML(xml, rootHandler);
458+
} catch (_err) {
459+
err = _err;
460+
}
461+
462+
// then
463+
expect(err).to.exist;
464+
465+
expect(err.message).to.contain('unparsable content <bounds> detected');
466+
expect(err.message).to.contain('unknown type <dt:Unknown>');
467+
});
468+
469+
470+
it('single / ns type', async function() {
471+
472+
var datatypeModel = createModel([ 'datatype' ]);
473+
474+
// given
475+
var reader = new Reader(datatypeModel);
476+
var rootHandler = reader.handler('dt:Root');
477+
478+
var xml =
479+
'<root xmlns="http://datatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
480+
'<bounds xsi:type="other:Unknown" y="100" />' +
481+
'</root>';
482+
483+
var err;
484+
485+
// when
486+
try {
487+
await reader.fromXML(xml, rootHandler);
488+
} catch (_err) {
489+
err = _err;
490+
}
491+
492+
// then
493+
expect(err).to.exist;
494+
495+
expect(err.message).to.contain('unparsable content <bounds> detected');
496+
expect(err.message).to.contain('unknown type <other:Unknown>');
497+
});
498+
499+
500+
it('collection', async function() {
501+
502+
var datatypeModel = createModel([ 'datatype' ]);
503+
504+
// given
505+
var reader = new Reader(datatypeModel);
506+
var rootHandler = reader.handler('dt:Root');
507+
508+
var xml =
509+
'<root xmlns="http://datatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' +
510+
'<otherBounds xsi:type="Unknown" y="100" />' +
511+
'</root>';
512+
513+
var err;
514+
515+
// when
516+
try {
517+
await reader.fromXML(xml, rootHandler);
518+
} catch (_err) {
519+
err = _err;
520+
}
521+
522+
// then
523+
expect(err).to.exist;
524+
525+
expect(err.message).to.contain('unparsable content <otherBounds> detected');
526+
expect(err.message).to.contain('unknown type <dt:Unknown>');
527+
});
462528

463-
expect(err.message).to.contain('unparsable content <otherBounds> detected');
464529
});
465530

466531

@@ -2481,7 +2546,7 @@ describe('Reader', function() {
24812546
var extensionModel = createModel([ 'extensions' ]);
24822547

24832548

2484-
it('should handle nested', async function() {
2549+
it('should handle nested (generic)', async function() {
24852550

24862551
// given
24872552
var reader = new Reader(extensionModel);

0 commit comments

Comments
 (0)