sentry-testkit 4.1.0 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -89
- package/dist/browser.d.ts +29 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +16 -20
- package/dist/browser.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -25
- package/dist/index.js.map +1 -0
- package/dist/initNetworkInterceptor.d.ts +4 -0
- package/dist/initNetworkInterceptor.d.ts.map +1 -0
- package/dist/initNetworkInterceptor.js +21 -38
- package/dist/initNetworkInterceptor.js.map +1 -0
- package/dist/jestMock.d.ts +4 -0
- package/dist/jestMock.d.ts.map +1 -0
- package/dist/jestMock.js +8 -15
- package/dist/jestMock.js.map +1 -0
- package/dist/localServerApi.d.ts +11 -0
- package/dist/localServerApi.d.ts.map +1 -0
- package/dist/localServerApi.js +82 -107
- package/dist/localServerApi.js.map +1 -0
- package/dist/parsers.d.ts +10 -0
- package/dist/parsers.d.ts.map +1 -0
- package/dist/parsers.js +27 -48
- package/dist/parsers.js.map +1 -0
- package/dist/sentryTransport.d.ts +16 -0
- package/dist/sentryTransport.d.ts.map +1 -0
- package/dist/sentryTransport.js +49 -73
- package/dist/sentryTransport.js.map +1 -0
- package/dist/src/browser.d.ts +18 -0
- package/dist/src/browser.d.ts.map +1 -0
- package/dist/src/browser.js +17 -0
- package/dist/src/browser.js.map +1 -0
- package/dist/src/index.d.ts +24 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +19 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/initNetworkInterceptor.d.ts +4 -0
- package/dist/src/initNetworkInterceptor.d.ts.map +1 -0
- package/dist/src/initNetworkInterceptor.js +26 -0
- package/dist/src/initNetworkInterceptor.js.map +1 -0
- package/dist/src/jestMock.d.ts +3 -0
- package/dist/src/jestMock.d.ts.map +1 -0
- package/dist/src/jestMock.js +40 -0
- package/dist/src/jestMock.js.map +1 -0
- package/dist/src/localServerApi.d.ts +7 -0
- package/dist/src/localServerApi.d.ts.map +1 -0
- package/dist/src/localServerApi.js +103 -0
- package/dist/src/localServerApi.js.map +1 -0
- package/dist/src/parsers.d.ts +10 -0
- package/dist/src/parsers.d.ts.map +1 -0
- package/dist/src/parsers.js +29 -0
- package/dist/src/parsers.js.map +1 -0
- package/dist/src/sentryTransport.d.ts +16 -0
- package/dist/src/sentryTransport.d.ts.map +1 -0
- package/dist/src/sentryTransport.js +50 -0
- package/dist/src/sentryTransport.js.map +1 -0
- package/dist/src/testkit.d.ts +3 -0
- package/dist/src/testkit.d.ts.map +1 -0
- package/dist/src/testkit.js +70 -0
- package/dist/src/testkit.js.map +1 -0
- package/dist/src/transformers.d.ts +4 -0
- package/dist/src/transformers.d.ts.map +1 -0
- package/dist/src/transformers.js +44 -0
- package/dist/src/transformers.js.map +1 -0
- package/dist/src/types.d.ts +73 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +3 -0
- package/dist/src/types.js.map +1 -0
- package/dist/test/browser.test.d.ts +2 -0
- package/dist/test/browser.test.d.ts.map +1 -0
- package/dist/test/browser.test.js +52 -0
- package/dist/test/browser.test.js.map +1 -0
- package/dist/test/commonTests.d.ts +8 -0
- package/dist/test/commonTests.d.ts.map +1 -0
- package/dist/test/commonTests.js +461 -0
- package/dist/test/commonTests.js.map +1 -0
- package/dist/test/fixtures/external-app-perf.d.ts +2 -0
- package/dist/test/fixtures/external-app-perf.d.ts.map +1 -0
- package/dist/test/fixtures/external-app-perf.js +20 -0
- package/dist/test/fixtures/external-app-perf.js.map +1 -0
- package/dist/test/fixtures/external-app.d.ts +2 -0
- package/dist/test/fixtures/external-app.d.ts.map +1 -0
- package/dist/test/fixtures/external-app.js +12 -0
- package/dist/test/fixtures/external-app.js.map +1 -0
- package/dist/test/jest-mock.help.d.ts +2 -0
- package/dist/test/jest-mock.help.d.ts.map +1 -0
- package/dist/test/jest-mock.help.js +49 -0
- package/dist/test/jest-mock.help.js.map +1 -0
- package/dist/test/jest-mock.test.d.ts +2 -0
- package/dist/test/jest-mock.test.d.ts.map +1 -0
- package/dist/test/jest-mock.test.js +26 -0
- package/dist/test/jest-mock.test.js.map +1 -0
- package/dist/test/local-server.test.d.ts +2 -0
- package/dist/test/local-server.test.d.ts.map +1 -0
- package/dist/test/local-server.test.js +213 -0
- package/dist/test/local-server.test.js.map +1 -0
- package/dist/test/network-interception.test.d.ts +2 -0
- package/dist/test/network-interception.test.d.ts.map +1 -0
- package/dist/test/network-interception.test.js +80 -0
- package/dist/test/network-interception.test.js.map +1 -0
- package/dist/test/node.test.d.ts +2 -0
- package/dist/test/node.test.d.ts.map +1 -0
- package/dist/test/node.test.js +52 -0
- package/dist/test/node.test.js.map +1 -0
- package/dist/test/puppeteer.test.d.ts +2 -0
- package/dist/test/puppeteer.test.d.ts.map +1 -0
- package/dist/test/puppeteer.test.js +73 -0
- package/dist/test/puppeteer.test.js.map +1 -0
- package/dist/testkit.d.ts +14 -0
- package/dist/testkit.d.ts.map +1 -0
- package/dist/testkit.js +66 -75
- package/dist/testkit.js.map +1 -0
- package/dist/transformers.d.ts +4 -0
- package/dist/transformers.d.ts.map +1 -0
- package/dist/transformers.js +40 -38
- package/dist/transformers.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +73 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +14 -4
- package/index.d.ts +0 -91
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
var Sentry = __importStar(require("@sentry/browser"));
|
|
30
|
+
var index_1 = __importDefault(require("./index"));
|
|
31
|
+
var _a = (0, index_1.default)(), testkit = _a.testkit, sentryTransport = _a.sentryTransport;
|
|
32
|
+
jest.mock('@sentry/browser', function () {
|
|
33
|
+
return Object.assign({}, Sentry, {
|
|
34
|
+
init: function (options) {
|
|
35
|
+
return Sentry.init(Object.assign({}, options, { transport: sentryTransport }));
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
exports.default = testkit;
|
|
40
|
+
//# sourceMappingURL=jestMock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jestMock.js","sourceRoot":"","sources":["../../src/jestMock.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAyC;AAEzC,kDAAmC;AAE7B,IAAA,KAA+B,IAAA,eAAa,GAAE,EAA5C,OAAO,aAAA,EAAE,eAAe,qBAAoB,CAAA;AAEpD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IAC3B,OAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE;QACxB,IAAI,EAAE,UAAC,OAAuB;YAC5B,OAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;QAAvE,CAAuE;KAC1E,CAAC;AAHF,CAGE,CACH,CAAA;AAED,kBAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localServerApi.d.ts","sourceRoot":"","sources":["../../src/localServerApi.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO;qBAI3B,MAAM;;;EAmG/B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createLocalServerApi = void 0;
|
|
7
|
+
var express_1 = __importDefault(require("express"));
|
|
8
|
+
var body_parser_1 = __importDefault(require("body-parser"));
|
|
9
|
+
var http_1 = __importDefault(require("http"));
|
|
10
|
+
var parsers_1 = require("./parsers");
|
|
11
|
+
var transformers_1 = require("./transformers");
|
|
12
|
+
function createLocalServerApi(testkit) {
|
|
13
|
+
var runningServer = null;
|
|
14
|
+
var localDsn = null;
|
|
15
|
+
var start = function (userDsn) {
|
|
16
|
+
if (runningServer !== null) {
|
|
17
|
+
throw new Error('Local server is already running');
|
|
18
|
+
}
|
|
19
|
+
var project = (0, parsers_1.parseDsn)(userDsn).project;
|
|
20
|
+
var app = (0, express_1.default)();
|
|
21
|
+
app.use(function (req, res, next) {
|
|
22
|
+
res.header('Access-Control-Allow-Origin', '*');
|
|
23
|
+
next();
|
|
24
|
+
});
|
|
25
|
+
// the performance endpoint uses a custom non-json payload so
|
|
26
|
+
// we can't use bodyParser.json() directly
|
|
27
|
+
app.use(body_parser_1.default.text({
|
|
28
|
+
type: [
|
|
29
|
+
'application/json',
|
|
30
|
+
'application/x-sentry-envelope',
|
|
31
|
+
'text/plain',
|
|
32
|
+
],
|
|
33
|
+
}));
|
|
34
|
+
app.post("/api/".concat(project, "/store/"), function (req, res) {
|
|
35
|
+
testkit.reports().push((0, transformers_1.transformReport)(JSON.parse(req.body)));
|
|
36
|
+
res.sendStatus(200);
|
|
37
|
+
});
|
|
38
|
+
app.post("/api/".concat(project, "/envelope/"), function (req, res) {
|
|
39
|
+
if (req.headers['transfer-encoding'] === 'chunked') {
|
|
40
|
+
var rawData_1 = '';
|
|
41
|
+
req.on('data', function (chunk) {
|
|
42
|
+
rawData_1 += chunk;
|
|
43
|
+
});
|
|
44
|
+
req.on('end', function () {
|
|
45
|
+
var _a = (0, parsers_1.parseEnvelopeRequest)(rawData_1), type = _a.type, payload = _a.payload;
|
|
46
|
+
if (type === 'transaction') {
|
|
47
|
+
testkit.transactions().push((0, transformers_1.transformTransaction)(payload));
|
|
48
|
+
}
|
|
49
|
+
if (type === 'event') {
|
|
50
|
+
testkit.reports().push((0, transformers_1.transformReport)(payload));
|
|
51
|
+
}
|
|
52
|
+
res.sendStatus(200);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
var _a = (0, parsers_1.parseEnvelopeRequest)(req.body), type = _a.type, payload = _a.payload;
|
|
57
|
+
if (type === 'transaction') {
|
|
58
|
+
testkit.transactions().push((0, transformers_1.transformTransaction)(payload));
|
|
59
|
+
}
|
|
60
|
+
res.sendStatus(200);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
runningServer = http_1.default.createServer(app);
|
|
64
|
+
return new Promise(function (resolve) {
|
|
65
|
+
if (runningServer) {
|
|
66
|
+
runningServer.listen(function () {
|
|
67
|
+
// @ts-expect-error
|
|
68
|
+
var port = runningServer.address().port;
|
|
69
|
+
localDsn = "http://acacaeaccacacacabcaacdacdacadaca@localhost:".concat(port, "/").concat(project);
|
|
70
|
+
resolve(undefined);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
throw new Error('Local server is not running');
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
var stop = function () {
|
|
79
|
+
if (runningServer === null) {
|
|
80
|
+
throw new Error('Local server is not running');
|
|
81
|
+
}
|
|
82
|
+
return new Promise(function (resolve, reject) {
|
|
83
|
+
runningServer.close(function (error) {
|
|
84
|
+
return error ? reject(error) : resolve(undefined);
|
|
85
|
+
});
|
|
86
|
+
runningServer = null;
|
|
87
|
+
localDsn = null;
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
var getDsn = function () {
|
|
91
|
+
if (runningServer === null) {
|
|
92
|
+
throw new Error('Local server is not running');
|
|
93
|
+
}
|
|
94
|
+
return localDsn;
|
|
95
|
+
};
|
|
96
|
+
return {
|
|
97
|
+
start: start,
|
|
98
|
+
stop: stop,
|
|
99
|
+
getDsn: getDsn,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
exports.createLocalServerApi = createLocalServerApi;
|
|
103
|
+
//# sourceMappingURL=localServerApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localServerApi.js","sourceRoot":"","sources":["../../src/localServerApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/parsers.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM;;;;EAoBnC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM;;;EAMnD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseEnvelopeRequest = exports.parseDsn = void 0;
|
|
4
|
+
var dsnKeys = 'source protocol user pass host port path'.split(' ');
|
|
5
|
+
var dsnPattern = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/; //eslint-disable-line no-useless-escape
|
|
6
|
+
function parseDsn(dsn) {
|
|
7
|
+
var dsnMatch = dsn.match(dsnPattern);
|
|
8
|
+
if (!dsnMatch) {
|
|
9
|
+
throw new Error('Could not parse DSN');
|
|
10
|
+
}
|
|
11
|
+
var _a = dsnMatch.reduce(function (parsed, current, index) {
|
|
12
|
+
var _a;
|
|
13
|
+
return Object.assign({}, parsed, (_a = {},
|
|
14
|
+
_a[dsnKeys[index]] = current,
|
|
15
|
+
_a));
|
|
16
|
+
}, {}), protocol = _a.protocol, host = _a.host, path = _a.path;
|
|
17
|
+
var project = path.substr(path.lastIndexOf('/') + 1);
|
|
18
|
+
return { protocol: protocol, project: project, host: host };
|
|
19
|
+
}
|
|
20
|
+
exports.parseDsn = parseDsn;
|
|
21
|
+
function parseEnvelopeRequest(reqBody) {
|
|
22
|
+
var _a = reqBody.split('\n'), _header = _a[0], itemHeader = _a[1], itemPayload = _a[2];
|
|
23
|
+
return {
|
|
24
|
+
type: JSON.parse(itemHeader).type,
|
|
25
|
+
payload: JSON.parse(itemPayload),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
exports.parseEnvelopeRequest = parseEnvelopeRequest;
|
|
29
|
+
//# sourceMappingURL=parsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/parsers.ts"],"names":[],"mappings":";;;AAAA,IAAM,OAAO,GAAG,0CAA0C,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACrE,IAAM,UAAU,GAAG,+DAA+D,CAAA,CAAC,uCAAuC;AAE1H,SAAgB,QAAQ,CAAC,GAAW;IAClC,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACtC,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;KACvC;IACK,IAAA,KAA2B,QAAQ,CAAC,MAAM,CAK9C,UAAC,MAAM,EAAE,OAAO,EAAE,KAAK;;QACrB,OAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM;YACtB,GAAC,OAAO,CAAC,KAAK,CAAW,IAAG,OAAO;gBACnC;IAFF,CAEE,EACJ,EAAsD,CACvD,EAVO,QAAQ,cAAA,EAAE,IAAI,UAAA,EAAE,IAAI,UAU3B,CAAA;IAED,IAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAEtD,OAAO,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;AACpC,CAAC;AApBD,4BAoBC;AAED,SAAgB,oBAAoB,CAAC,OAAe;IAC5C,IAAA,KAAqC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAvD,OAAO,QAAA,EAAE,UAAU,QAAA,EAAE,WAAW,QAAuB,CAAA;IAC9D,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAW,CAAC,CAAC,IAAI;QAClC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAY,CAAC;KAClC,CAAA;AACH,CAAC;AAND,oDAMC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Event } from '@sentry/types';
|
|
2
|
+
import { Testkit } from './types';
|
|
3
|
+
export declare function createSentryTransport(testkit: Testkit): () => {
|
|
4
|
+
captureEvent: (event: Event) => Promise<{
|
|
5
|
+
status: string;
|
|
6
|
+
event: Event;
|
|
7
|
+
}>;
|
|
8
|
+
sendEvent: (event: Event) => Promise<{
|
|
9
|
+
status: string;
|
|
10
|
+
event: Event;
|
|
11
|
+
}>;
|
|
12
|
+
send: (envelope: any) => Promise<void>;
|
|
13
|
+
close: () => Promise<boolean>;
|
|
14
|
+
flush: () => Promise<boolean>;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=sentryTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentryTransport.d.ts","sourceRoot":"","sources":["../../src/sentryTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO;0BAGhB,KAAK;;;;uBAAL,KAAK;;;;qBAcP,GAAG;;;EA8BtC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSentryTransport = void 0;
|
|
4
|
+
var transformers_1 = require("./transformers");
|
|
5
|
+
function createSentryTransport(testkit) {
|
|
6
|
+
return function () {
|
|
7
|
+
// Send transport for API < v7
|
|
8
|
+
var sendEvent = function (event) {
|
|
9
|
+
if (event.type === 'transaction') {
|
|
10
|
+
testkit.transactions().push((0, transformers_1.transformTransaction)(event));
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
testkit.reports().push((0, transformers_1.transformReport)(event));
|
|
14
|
+
}
|
|
15
|
+
return Promise.resolve({
|
|
16
|
+
status: 'success',
|
|
17
|
+
event: event,
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
// Send transport for API v7
|
|
21
|
+
var send = function (envelope) {
|
|
22
|
+
var items = envelope[1];
|
|
23
|
+
// @ts-expect-error
|
|
24
|
+
items.forEach(function (_a) {
|
|
25
|
+
var headers = _a[0], data = _a[1];
|
|
26
|
+
if (headers.type === 'transaction') {
|
|
27
|
+
testkit.transactions().push((0, transformers_1.transformTransaction)(data));
|
|
28
|
+
}
|
|
29
|
+
else if (headers.type === 'event') {
|
|
30
|
+
testkit.reports().push((0, transformers_1.transformReport)(data));
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
return Promise.resolve();
|
|
34
|
+
};
|
|
35
|
+
var close = function () {
|
|
36
|
+
return Promise.resolve(true);
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
// captureEvent(event: SentryEvent): Promise<SentryResponse>;
|
|
40
|
+
captureEvent: sendEvent,
|
|
41
|
+
sendEvent: sendEvent,
|
|
42
|
+
send: send,
|
|
43
|
+
// close(timeout?: number): Promise<boolean>;
|
|
44
|
+
close: close,
|
|
45
|
+
flush: close, // support for v7 API
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
exports.createSentryTransport = createSentryTransport;
|
|
50
|
+
//# sourceMappingURL=sentryTransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentryTransport.js","sourceRoot":"","sources":["../../src/sentryTransport.ts"],"names":[],"mappings":";;;AACA,+CAAsE;AAGtE,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,OAAO;QACL,8BAA8B;QAC9B,IAAM,SAAS,GAAG,UAAS,KAAY;YACrC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;gBAChC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAA,mCAAoB,EAAC,KAAK,CAAC,CAAC,CAAA;aACzD;iBAAM;gBACL,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAA,8BAAe,EAAC,KAAK,CAAC,CAAC,CAAA;aAC/C;YAED,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,MAAM,EAAE,SAAS;gBACjB,KAAK,OAAA;aACN,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,4BAA4B;QAC5B,IAAM,IAAI,GAAG,UAAS,QAAa;YACxB,IAAA,KAAK,GAAI,QAAQ,GAAZ,CAAY;YAE1B,mBAAmB;YACnB,KAAK,CAAC,OAAO,CAAC,UAAC,EAAe;oBAAd,OAAO,QAAA,EAAE,IAAI,QAAA;gBAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;oBAClC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAA,mCAAoB,EAAC,IAAI,CAAC,CAAC,CAAA;iBACxD;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;oBACnC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAA,8BAAe,EAAC,IAAI,CAAC,CAAC,CAAA;iBAC9C;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC,CAAA;QAED,IAAM,KAAK,GAAG;YACZ,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAA;QAED,OAAO;YACL,6DAA6D;YAC7D,YAAY,EAAE,SAAS;YACvB,SAAS,WAAA;YACT,IAAI,MAAA;YAEJ,6CAA6C;YAC7C,KAAK,OAAA;YACL,KAAK,EAAE,KAAK,EAAE,qBAAqB;SACpC,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AA/CD,sDA+CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testkit.d.ts","sourceRoot":"","sources":["../../src/testkit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,OAAO,EAAe,MAAM,SAAS,CAAA;AAMnE,wBAAgB,aAAa,IAAI,OAAO,CAkEvC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTestkit = void 0;
|
|
4
|
+
var parsers_1 = require("./parsers");
|
|
5
|
+
var transformers_1 = require("./transformers");
|
|
6
|
+
function getException(report) {
|
|
7
|
+
return report.error;
|
|
8
|
+
}
|
|
9
|
+
function createTestkit() {
|
|
10
|
+
var reports = [];
|
|
11
|
+
var transactions = [];
|
|
12
|
+
var puppeteerHandler = null;
|
|
13
|
+
var createPuppeteerHandler = function (baseUrl) { return function (request) {
|
|
14
|
+
var url = request.url();
|
|
15
|
+
if (!url.startsWith(baseUrl)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
var path = url.substring(baseUrl.length);
|
|
19
|
+
if (/\/api\/[0-9]*\/store/.test(path)) {
|
|
20
|
+
reports.push((0, transformers_1.transformReport)(JSON.parse(request.postData())));
|
|
21
|
+
}
|
|
22
|
+
if (/\/api\/[0-9]*\/envelope/.test(path)) {
|
|
23
|
+
var _a = (0, parsers_1.parseEnvelopeRequest)(request.postData()), type = _a.type, payload = _a.payload;
|
|
24
|
+
if (type === 'transaction') {
|
|
25
|
+
transactions.push((0, transformers_1.transformTransaction)(payload));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}; };
|
|
29
|
+
return {
|
|
30
|
+
puppeteer: {
|
|
31
|
+
startListening: function (page, baseUrl) {
|
|
32
|
+
if (baseUrl === void 0) { baseUrl = 'https://sentry.io'; }
|
|
33
|
+
puppeteerHandler = createPuppeteerHandler(baseUrl);
|
|
34
|
+
page.on('request', puppeteerHandler);
|
|
35
|
+
},
|
|
36
|
+
stopListening: function (page) {
|
|
37
|
+
page.removeListener('request', puppeteerHandler);
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
reports: function () {
|
|
41
|
+
return reports;
|
|
42
|
+
},
|
|
43
|
+
transactions: function () {
|
|
44
|
+
return transactions;
|
|
45
|
+
},
|
|
46
|
+
reset: function () {
|
|
47
|
+
reports = [];
|
|
48
|
+
transactions = [];
|
|
49
|
+
},
|
|
50
|
+
getExceptionAt: function (index) {
|
|
51
|
+
if (reports[index]) {
|
|
52
|
+
return getException(reports[index]);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
throw new Error("There's not report at index ".concat(index));
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
findReport: function (e) {
|
|
59
|
+
return reports.find(function (r) {
|
|
60
|
+
var err = getException(r);
|
|
61
|
+
return err && err.name === e.name && err.message === e.message;
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
isExist: function (e) {
|
|
65
|
+
return this.findReport(e) !== undefined;
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
exports.createTestkit = createTestkit;
|
|
70
|
+
//# sourceMappingURL=testkit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testkit.js","sourceRoot":"","sources":["../../src/testkit.ts"],"names":[],"mappings":";;;AAAA,qCAAgD;AAChD,+CAAsE;AAGtE,SAAS,YAAY,CAAC,MAAc;IAClC,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC;AAED,SAAgB,aAAa;IAC3B,IAAI,OAAO,GAAa,EAAE,CAAA;IAC1B,IAAI,YAAY,GAAkB,EAAE,CAAA;IAEpC,IAAI,gBAAgB,GAAQ,IAAI,CAAA;IAChC,IAAM,sBAAsB,GAAG,UAAC,OAAe,IAAK,OAAA,UAAC,OAAY;QAC/D,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAM;SACP;QACD,IAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,IAAA,8BAAe,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;SAC9D;QACD,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAClC,IAAA,KAAoB,IAAA,8BAAoB,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAA1D,IAAI,UAAA,EAAE,OAAO,aAA6C,CAAA;YAClE,IAAI,IAAI,KAAK,aAAa,EAAE;gBAC1B,YAAY,CAAC,IAAI,CAAC,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC,CAAA;aACjD;SACF;IACH,CAAC,EAfmD,CAenD,CAAA;IAED,OAAO;QACL,SAAS,EAAE;YACT,cAAc,EAAE,UAAC,IAAS,EAAE,OAAqC;gBAArC,wBAAA,EAAA,6BAAqC;gBAC/D,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;gBAClD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;YACtC,CAAC;YAED,aAAa,EAAE,UAAC,IAAS;gBACvB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;YAClD,CAAC;SACF;QAED,OAAO;YACL,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,YAAY;YACV,OAAO,YAAY,CAAA;QACrB,CAAC;QAED,KAAK;YACH,OAAO,GAAG,EAAE,CAAA;YACZ,YAAY,GAAG,EAAE,CAAA;QACnB,CAAC;QAED,cAAc,YAAC,KAAa;YAC1B,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClB,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,CAAA;aACrC;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,sCAA+B,KAAK,CAAE,CAAC,CAAA;aACxD;QACH,CAAC;QAED,UAAU,YAAC,CAAc;YACvB,OAAO,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC;gBACnB,IAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;gBAC3B,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAA;YAChE,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,YAAC,CAAc;YACpB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,CAAA;QACzC,CAAC;KACF,CAAA;AACH,CAAC;AAlED,sCAkEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../src/transformers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAe,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1D,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAsBnD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW,CAgB3D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transformTransaction = exports.transformReport = void 0;
|
|
4
|
+
function transformReport(report) {
|
|
5
|
+
var exception = report.exception && report.exception.values && report.exception.values[0];
|
|
6
|
+
var error = exception
|
|
7
|
+
? {
|
|
8
|
+
name: exception.type,
|
|
9
|
+
message: exception.value,
|
|
10
|
+
stacktrace: exception.stacktrace,
|
|
11
|
+
}
|
|
12
|
+
: undefined;
|
|
13
|
+
return {
|
|
14
|
+
breadcrumbs: report.breadcrumbs || [],
|
|
15
|
+
error: error,
|
|
16
|
+
message: report.message,
|
|
17
|
+
extra: report.extra,
|
|
18
|
+
level: report.level || 'error',
|
|
19
|
+
release: report.release,
|
|
20
|
+
user: report.user,
|
|
21
|
+
tags: report.tags || {},
|
|
22
|
+
originalReport: report,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
exports.transformReport = transformReport;
|
|
26
|
+
function transformTransaction(item) {
|
|
27
|
+
return {
|
|
28
|
+
name: item.transaction,
|
|
29
|
+
traceId: item.contexts.trace.trace_id,
|
|
30
|
+
release: item.release,
|
|
31
|
+
tags: item.tags || {},
|
|
32
|
+
extra: item.extra,
|
|
33
|
+
spans: item.spans.map(function (span) { return ({
|
|
34
|
+
// @ts-expect-error
|
|
35
|
+
id: span.span_id || span.spanId,
|
|
36
|
+
op: span.op,
|
|
37
|
+
// @ts-expect-error
|
|
38
|
+
parentSpanId: span.parent_span_id || span.parentSpanId,
|
|
39
|
+
description: span.description,
|
|
40
|
+
}); }),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
exports.transformTransaction = transformTransaction;
|
|
44
|
+
//# sourceMappingURL=transformers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../src/transformers.ts"],"names":[],"mappings":";;;AAGA,SAAgB,eAAe,CAAC,MAAW;IACzC,IAAM,SAAS,GACb,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC3E,IAAM,KAAK,GAA4B,SAAS;QAC9C,CAAC,CAAC;YACE,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,SAAS,CAAC,KAAK;YACxB,UAAU,EAAE,SAAS,CAAC,UAAU;SACjC;QACH,CAAC,CAAC,SAAS,CAAA;IAEb,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,KAAK,OAAA;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,OAAO;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;QACvB,cAAc,EAAE,MAAM;KACvB,CAAA;AACH,CAAC;AAtBD,0CAsBC;AAED,SAAgB,oBAAoB,CAAC,IAAS;IAC5C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,WAAW;QACtB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;QACrC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAU,IAAK,OAAA,CAAC;YACrC,mBAAmB;YACnB,EAAE,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,mBAAmB;YACnB,YAAY,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY;YACtD,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,EAPoC,CAOpC,CAAC;KACJ,CAAA;AACH,CAAC;AAhBD,oDAgBC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Event, Breadcrumb, User, SeverityLevel, StackFrame, Transport } from '@sentry/types';
|
|
2
|
+
export = sentryTestkit;
|
|
3
|
+
declare function sentryTestkit<T extends sentryTestkit.V6TransportClass | sentryTestkit.V7TransportFunction>(): sentryTestkit.TestkitResult<T>;
|
|
4
|
+
declare namespace sentryTestkit {
|
|
5
|
+
interface Page {
|
|
6
|
+
on(event: string, handler: (...args: any[]) => any): void;
|
|
7
|
+
removeListener(event: string, handler: (...args: any[]) => any): void;
|
|
8
|
+
}
|
|
9
|
+
interface ReportError {
|
|
10
|
+
name: string;
|
|
11
|
+
message: string;
|
|
12
|
+
stacktrace: StackFrame[];
|
|
13
|
+
}
|
|
14
|
+
interface Report {
|
|
15
|
+
breadcrumbs: Breadcrumb[];
|
|
16
|
+
error?: ReportError;
|
|
17
|
+
message?: string;
|
|
18
|
+
extra?: {
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
};
|
|
21
|
+
level: SeverityLevel;
|
|
22
|
+
release?: string;
|
|
23
|
+
user?: User;
|
|
24
|
+
tags: {
|
|
25
|
+
[key: string]: string;
|
|
26
|
+
};
|
|
27
|
+
originalReport: Event;
|
|
28
|
+
}
|
|
29
|
+
interface Span {
|
|
30
|
+
id: string;
|
|
31
|
+
op?: string;
|
|
32
|
+
description?: string;
|
|
33
|
+
parentSpanId: string;
|
|
34
|
+
}
|
|
35
|
+
interface Transaction {
|
|
36
|
+
name: string;
|
|
37
|
+
traceId: string;
|
|
38
|
+
release?: string;
|
|
39
|
+
extra?: Record<string, unknown>;
|
|
40
|
+
tags: Record<string, unknown>;
|
|
41
|
+
spans: Span[];
|
|
42
|
+
}
|
|
43
|
+
interface Testkit {
|
|
44
|
+
puppeteer: {
|
|
45
|
+
startListening(page: Page, baseUrl?: String): void;
|
|
46
|
+
stopListening(page: Page): void;
|
|
47
|
+
};
|
|
48
|
+
reports(): Report[];
|
|
49
|
+
transactions(): Transaction[];
|
|
50
|
+
reset(): void;
|
|
51
|
+
getExceptionAt(index: number): ReportError | undefined;
|
|
52
|
+
findReport(e: Error): Report | undefined;
|
|
53
|
+
isExist(e: Error): boolean;
|
|
54
|
+
}
|
|
55
|
+
interface LocalServer {
|
|
56
|
+
start: (dsn: string) => Promise<void>;
|
|
57
|
+
stop: () => Promise<void>;
|
|
58
|
+
getDsn: () => string;
|
|
59
|
+
}
|
|
60
|
+
type V6TransportClass = {
|
|
61
|
+
new (): Transport;
|
|
62
|
+
};
|
|
63
|
+
type V7TransportFunction = () => Transport;
|
|
64
|
+
interface TestkitResult<Transport extends V6TransportClass | V7TransportFunction> {
|
|
65
|
+
testkit: Testkit;
|
|
66
|
+
sentryTransport: Transport;
|
|
67
|
+
initNetworkInterceptor<T>(dsn: string, initCallback: (baseUrl: string, handleRequestBody: (requestBody: {
|
|
68
|
+
[key: string]: any;
|
|
69
|
+
}) => void) => T): T;
|
|
70
|
+
localServer: LocalServer;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AASA,iBAAS,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.test.d.ts","sourceRoot":"","sources":["../../test/browser.test.ts"],"names":[],"mappings":"AAKA,OAAO,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
var BrowserSentry = __importStar(require("@sentry/browser"));
|
|
30
|
+
var src_1 = __importDefault(require("../src"));
|
|
31
|
+
var commonTests_1 = require("./commonTests");
|
|
32
|
+
require("@sentry/tracing");
|
|
33
|
+
var _a = (0, src_1.default)(), testkit = _a.testkit, sentryTransport = _a.sentryTransport;
|
|
34
|
+
var DUMMY_DSN = 'https://acacaeaccacacacabcaacdacdacadaca@sentry.io/000001';
|
|
35
|
+
var Sentry = BrowserSentry;
|
|
36
|
+
describe('sentry test-kit test suite - @sentry/browser', function () {
|
|
37
|
+
beforeAll(function () {
|
|
38
|
+
return Sentry.init({
|
|
39
|
+
dsn: DUMMY_DSN,
|
|
40
|
+
release: 'test',
|
|
41
|
+
tracesSampleRate: 1,
|
|
42
|
+
transport: sentryTransport,
|
|
43
|
+
beforeSend: function (event) {
|
|
44
|
+
event.extra = { os: 'mac-os' };
|
|
45
|
+
return event;
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
beforeEach(function () { return testkit.reset(); });
|
|
50
|
+
(0, commonTests_1.createCommonTests)({ Sentry: Sentry, testkit: testkit });
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=browser.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.test.js","sourceRoot":"","sources":["../../test/browser.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6DAAgD;AAChD,+CAAkC;AAClC,6CAAiD;AAEjD,2BAAwB;AAElB,IAAA,KAA+B,IAAA,aAAa,GAAE,EAA5C,OAAO,aAAA,EAAE,eAAe,qBAAoB,CAAA;AACpD,IAAM,SAAS,GAAG,2DAA2D,CAAA;AAC7E,IAAM,MAAM,GAAG,aAAa,CAAA;AAE5B,QAAQ,CAAC,8CAA8C,EAAE;IACvD,SAAS,CAAC;QACR,OAAA,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,MAAM;YACf,gBAAgB,EAAE,CAAC;YACnB,SAAS,EAAE,eAAe;YAC1B,UAAU,YAAC,KAAY;gBACrB,KAAK,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAA;gBAC9B,OAAO,KAAK,CAAA;YACd,CAAC;SACF,CAAC;IATF,CASE,CACH,CAAA;IAED,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAK,EAAE,EAAf,CAAe,CAAC,CAAA;IAEjC,IAAA,+BAAiB,EAAC,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;AACxC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as NodeSentry from '@sentry/node';
|
|
2
|
+
import * as BrowserSentry from '@sentry/browser';
|
|
3
|
+
import { Testkit } from '../src/types';
|
|
4
|
+
export declare function createCommonTests({ Sentry, testkit, }: {
|
|
5
|
+
Sentry: typeof NodeSentry | typeof BrowserSentry;
|
|
6
|
+
testkit: Testkit;
|
|
7
|
+
}): void;
|
|
8
|
+
//# sourceMappingURL=commonTests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonTests.d.ts","sourceRoot":"","sources":["../../test/commonTests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,OAAO,GACR,EAAE;IACD,MAAM,EAAE,OAAO,UAAU,GAAG,OAAO,aAAa,CAAA;IAChD,OAAO,EAAE,OAAO,CAAA;CACjB,QA2MA"}
|