Skip to content

Commit d42697e

Browse files
committed
Failing test for #924 when fetch is passed Request obj instead of url string
1 parent 5cf57e1 commit d42697e

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

test/integration/test.js

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -631,25 +631,74 @@ describe('integration', function () {
631631
},
632632
function () {
633633
var Raven = iframe.contentWindow.Raven,
634-
breadcrumbs = Raven._breadcrumbs;
634+
breadcrumbs = Raven._breadcrumbs,
635+
breadcrumbUrl = '/test/integration/example.json';
636+
637+
if ('fetch' in window) {
638+
assert.equal(breadcrumbs.length, 1);
639+
640+
assert.equal(breadcrumbs[0].type, 'http');
641+
assert.equal(breadcrumbs[0].category, 'fetch');
642+
assert.equal(breadcrumbs[0].data.method, 'GET');
643+
assert.equal(breadcrumbs[0].data.url, breadcrumbUrl);
644+
} else {
645+
// otherwise we use a fetch polyfill based on xhr
646+
assert.equal(breadcrumbs.length, 2);
647+
648+
assert.equal(breadcrumbs[0].type, 'http');
649+
assert.equal(breadcrumbs[0].category, 'fetch');
650+
assert.equal(breadcrumbs[0].data.method, 'GET');
651+
assert.equal(breadcrumbs[0].data.url, breadcrumbUrl);
652+
653+
assert.equal(breadcrumbs[1].type, 'http');
654+
assert.equal(breadcrumbs[1].category, 'xhr');
655+
assert.equal(breadcrumbs[1].data.method, 'GET');
656+
assert.equal(breadcrumbs[1].data.url, breadcrumbUrl);
657+
}
658+
}
659+
);
660+
});
661+
662+
it('should record a fetch request with Request obj instead of URL string', function (done) {
663+
var iframe = this.iframe;
664+
665+
iframeExecute(iframe, done,
666+
function () {
667+
// some browsers trigger onpopstate for load / reset breadcrumb state
668+
Raven._breadcrumbs = [];
669+
670+
fetch(new Request('/test/integration/example.json')).then(function () {
671+
setTimeout(done);
672+
}, function () {
673+
setTimeout(done);
674+
});
675+
},
676+
function () {
677+
var Raven = iframe.contentWindow.Raven,
678+
breadcrumbs = Raven._breadcrumbs,
679+
breadcrumbUrl = '/test/integration/example.json';
635680

636681
if ('fetch' in window) {
637682
assert.equal(breadcrumbs.length, 1);
638683

639684
assert.equal(breadcrumbs[0].type, 'http');
640685
assert.equal(breadcrumbs[0].category, 'fetch');
641686
assert.equal(breadcrumbs[0].data.method, 'GET');
687+
// Request constructor normalizes the url
688+
assert.ok(breadcrumbs[0].data.url.indexOf(breadcrumbUrl) !== -1);
642689
} else {
643690
// otherwise we use a fetch polyfill based on xhr
644691
assert.equal(breadcrumbs.length, 2);
645692

646693
assert.equal(breadcrumbs[0].type, 'http');
647694
assert.equal(breadcrumbs[0].category, 'fetch');
648695
assert.equal(breadcrumbs[0].data.method, 'GET');
696+
assert.ok(breadcrumbs[0].data.url.indexOf(breadcrumbUrl) !== -1);
649697

650698
assert.equal(breadcrumbs[1].type, 'http');
651699
assert.equal(breadcrumbs[1].category, 'xhr');
652700
assert.equal(breadcrumbs[1].data.method, 'GET');
701+
assert.ok(breadcrumbs[1].data.url.indexOf(breadcrumbUrl) !== -1);
653702
}
654703
}
655704
);

0 commit comments

Comments
 (0)