Skip to content

Commit

Permalink
ref(types): deprecate status enum (#4298)
Browse files Browse the repository at this point in the history
* ref(types): deprecate enum and export type

* ref(types): fix fromHttpCode usage to statusFromHttpCode

* ref(types): remove enum usage

* fix(types): fix mistake on span

* fix: fmt

* ref(types): do not export the status enum

* ref(types): fix all imports

* ref(utils): consistent naming

* ref(types): deprecate span status enum (#4299)

* ref(span): deprecate span status enum

* ts(span): widen type

* ref(span): avoid reexporting the enum

* ref(types): fix all imports

* fix(test): remove extra space

* fix(test): import extension methods

* ref(types): deprecate transactionmethod enum (#4314)

* ref(types): deprecate transactionmethod enum

* fix(types): drop transactionsamplingmethod

* ref(types): deprecate outcome enum (#4315)

* ref(types): deprecate outcome enum

* fix(types): drop transportoutcome

* ref(types): deprecate request status enum (#4316)

* ref(types): deprecate request status

* ref(types): deprecate session status

* ref(types): remove unused logLevel (#4317) (#4320)

Co-authored-by: Armin Ronacher <[email protected]>
  • Loading branch information
JonasBa and mitsuhiko authored Dec 16, 2021
1 parent 1dbeeda commit 1c52a91
Show file tree
Hide file tree
Showing 60 changed files with 402 additions and 393 deletions.
2 changes: 1 addition & 1 deletion packages/browser/src/exports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ export {
SdkInfo,
Event,
EventHint,
EventStatus,
Exception,
Response,
SeverityLevel,
StackFrame,
Stacktrace,
Status,
Thread,
User,
} from '@sentry/types';
Expand Down
6 changes: 3 additions & 3 deletions packages/browser/src/transports/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ import {
Outcome,
Response as SentryResponse,
SentryRequestType,
Status,
Transport,
TransportOptions,
} from '@sentry/types';
import {
dateTimestampInSeconds,
eventStatusFromHttpCode,
getGlobalObject,
logger,
parseRetryAfterHeader,
Expand Down Expand Up @@ -155,7 +155,7 @@ export abstract class BaseTransport implements Transport {
resolve: (value?: SentryResponse | PromiseLike<SentryResponse> | null | undefined) => void;
reject: (reason?: unknown) => void;
}): void {
const status = Status.fromHttpCode(response.status);
const status = eventStatusFromHttpCode(response.status);
/**
* "The name is case-insensitive."
* https://developer.mozilla.org/en-US/docs/Web/API/Headers/get
Expand All @@ -164,7 +164,7 @@ export abstract class BaseTransport implements Transport {
if (limited)
logger.warn(`Too many ${requestType} requests, backing off until: ${this._disabledUntil(requestType)}`);

if (status === Status.Success) {
if (status === 'success') {
resolve({ status });
return;
}
Expand Down
8 changes: 4 additions & 4 deletions packages/browser/src/transports/fetch.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';
import { Event, Outcome, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';
import { Event, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';
import { SentryError, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';

import { BaseTransport } from './base';
Expand Down Expand Up @@ -37,7 +37,7 @@ export class FetchTransport extends BaseTransport {
*/
private _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike<Response> {
if (this._isRateLimited(sentryRequest.type)) {
this.recordLostEvent(Outcome.RateLimitBackoff, sentryRequest.type);
this.recordLostEvent('ratelimit_backoff', sentryRequest.type);

return Promise.reject({
event: originalPayload,
Expand Down Expand Up @@ -89,9 +89,9 @@ export class FetchTransport extends BaseTransport {
.then(undefined, reason => {
// It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.
if (reason instanceof SentryError) {
this.recordLostEvent(Outcome.QueueOverflow, sentryRequest.type);
this.recordLostEvent('queue_overflow', sentryRequest.type);
} else {
this.recordLostEvent(Outcome.NetworkError, sentryRequest.type);
this.recordLostEvent('network_error', sentryRequest.type);
}
throw reason;
});
Expand Down
8 changes: 4 additions & 4 deletions packages/browser/src/transports/xhr.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';
import { Event, Outcome, Response, SentryRequest, Session } from '@sentry/types';
import { Event, Response, SentryRequest, Session } from '@sentry/types';
import { SentryError, SyncPromise } from '@sentry/utils';

import { BaseTransport } from './base';
Expand All @@ -26,7 +26,7 @@ export class XHRTransport extends BaseTransport {
*/
private _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike<Response> {
if (this._isRateLimited(sentryRequest.type)) {
this.recordLostEvent(Outcome.RateLimitBackoff, sentryRequest.type);
this.recordLostEvent('ratelimit_backoff', sentryRequest.type);

return Promise.reject({
event: originalPayload,
Expand Down Expand Up @@ -66,9 +66,9 @@ export class XHRTransport extends BaseTransport {
.then(undefined, reason => {
// It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.
if (reason instanceof SentryError) {
this.recordLostEvent(Outcome.QueueOverflow, sentryRequest.type);
this.recordLostEvent('queue_overflow', sentryRequest.type);
} else {
this.recordLostEvent(Outcome.NetworkError, sentryRequest.type);
this.recordLostEvent('network_error', sentryRequest.type);
}
throw reason;
});
Expand Down
6 changes: 3 additions & 3 deletions packages/browser/test/unit/mocks/simpletransport.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { SyncPromise } from '@sentry/utils';
import { eventStatusFromHttpCode, SyncPromise } from '@sentry/utils';

import { Event, Response, Status } from '../../../src';
import { Event, Response } from '../../../src';
import { BaseTransport } from '../../../src/transports';

export class SimpleTransport extends BaseTransport {
public sendEvent(_: Event): PromiseLike<Response> {
return this._buffer.add(() =>
SyncPromise.resolve({
status: Status.fromHttpCode(200),
status: eventStatusFromHttpCode(200),
}),
);
}
Expand Down
32 changes: 15 additions & 17 deletions packages/browser/test/unit/transports/base.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import { Outcome } from '@sentry/types';

import { BaseTransport } from '../../../src/transports/base';

const testDsn = 'https://[email protected]/42';
Expand Down Expand Up @@ -44,12 +42,12 @@ describe('BaseTransport', () => {
it('sends beacon request when there are outcomes captured and visibility changed to `hidden`', () => {
const transport = new SimpleTransport({ dsn: testDsn, sendClientReports: true });

transport.recordLostEvent(Outcome.BeforeSend, 'event');
transport.recordLostEvent('before_send', 'event');

visibilityState = 'hidden';
document.dispatchEvent(new Event('visibilitychange'));

const outcomes = [{ reason: Outcome.BeforeSend, category: 'error', quantity: 1 }];
const outcomes = [{ reason: 'before_send', category: 'error', quantity: 1 }];

expect(sendBeaconSpy).toHaveBeenCalledWith(
envelopeEndpoint,
Expand All @@ -59,7 +57,7 @@ describe('BaseTransport', () => {

it('doesnt send beacon request when there are outcomes captured, but visibility state did not change to `hidden`', () => {
const transport = new SimpleTransport({ dsn: testDsn, sendClientReports: true });
transport.recordLostEvent(Outcome.BeforeSend, 'event');
transport.recordLostEvent('before_send', 'event');

visibilityState = 'visible';
document.dispatchEvent(new Event('visibilitychange'));
Expand All @@ -70,21 +68,21 @@ describe('BaseTransport', () => {
it('correctly serializes request with different categories/reasons pairs', () => {
const transport = new SimpleTransport({ dsn: testDsn, sendClientReports: true });

transport.recordLostEvent(Outcome.BeforeSend, 'event');
transport.recordLostEvent(Outcome.BeforeSend, 'event');
transport.recordLostEvent(Outcome.SampleRate, 'transaction');
transport.recordLostEvent(Outcome.NetworkError, 'session');
transport.recordLostEvent(Outcome.NetworkError, 'session');
transport.recordLostEvent(Outcome.RateLimitBackoff, 'event');
transport.recordLostEvent('before_send', 'event');
transport.recordLostEvent('before_send', 'event');
transport.recordLostEvent('sample_rate', 'transaction');
transport.recordLostEvent('network_error', 'session');
transport.recordLostEvent('network_error', 'session');
transport.recordLostEvent('ratelimit_backoff', 'event');

visibilityState = 'hidden';
document.dispatchEvent(new Event('visibilitychange'));

const outcomes = [
{ reason: Outcome.BeforeSend, category: 'error', quantity: 2 },
{ reason: Outcome.SampleRate, category: 'transaction', quantity: 1 },
{ reason: Outcome.NetworkError, category: 'session', quantity: 2 },
{ reason: Outcome.RateLimitBackoff, category: 'error', quantity: 1 },
{ reason: 'before_send', category: 'error', quantity: 2 },
{ reason: 'sample_rate', category: 'transaction', quantity: 1 },
{ reason: 'network_error', category: 'session', quantity: 2 },
{ reason: 'ratelimit_backoff', category: 'error', quantity: 1 },
];

expect(sendBeaconSpy).toHaveBeenCalledWith(
Expand All @@ -97,12 +95,12 @@ describe('BaseTransport', () => {
const tunnel = 'https://hello.com/world';
const transport = new SimpleTransport({ dsn: testDsn, sendClientReports: true, tunnel });

transport.recordLostEvent(Outcome.BeforeSend, 'event');
transport.recordLostEvent('before_send', 'event');

visibilityState = 'hidden';
document.dispatchEvent(new Event('visibilitychange'));

const outcomes = [{ reason: Outcome.BeforeSend, category: 'error', quantity: 1 }];
const outcomes = [{ reason: 'before_send', category: 'error', quantity: 1 }];

expect(sendBeaconSpy).toHaveBeenCalledWith(
tunnel,
Expand Down
35 changes: 17 additions & 18 deletions packages/browser/test/unit/transports/fetch.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { Outcome } from '@sentry/types';
import { SentryError } from '@sentry/utils';

import { Event, Response, Status, Transports } from '../../../src';
import { Event, Response, Transports } from '../../../src';

const testDsn = 'https://[email protected]/42';
const storeUrl = 'https://sentry.io/api/42/store/?sentry_key=123&sentry_version=7';
Expand Down Expand Up @@ -61,7 +60,7 @@ describe('FetchTransport', () => {

const res = await transport.sendEvent(eventPayload);

expect((res as Response).status).toBe(Status.Success);
expect((res as Response).status).toBe('success');
expect(fetch).toHaveBeenCalledWith(storeUrl, {
body: JSON.stringify(eventPayload),
method: 'POST',
Expand Down Expand Up @@ -117,7 +116,7 @@ describe('FetchTransport', () => {
try {
await transport.sendEvent(eventPayload);
} catch (_) {
expect(spy).toHaveBeenCalledWith(Outcome.NetworkError, 'event');
expect(spy).toHaveBeenCalledWith('network_error', 'event');
}
});

Expand All @@ -129,7 +128,7 @@ describe('FetchTransport', () => {
try {
await transport.sendEvent(transactionPayload);
} catch (_) {
expect(spy).toHaveBeenCalledWith(Outcome.QueueOverflow, 'transaction');
expect(spy).toHaveBeenCalledWith('queue_overflow', 'transaction');
}
});

Expand All @@ -149,7 +148,7 @@ describe('FetchTransport', () => {

const res = await transport.sendEvent(eventPayload);

expect((res as Response).status).toBe(Status.Success);
expect((res as Response).status).toBe('success');
expect(fetch).toHaveBeenCalledWith(storeUrl, {
body: JSON.stringify(eventPayload),
headers: {
Expand All @@ -176,7 +175,7 @@ describe('FetchTransport', () => {

const res = await transport.sendEvent(eventPayload);

expect((res as Response).status).toBe(Status.Success);
expect((res as Response).status).toBe('success');
expect(fetch).toHaveBeenCalledWith(storeUrl, {
body: JSON.stringify(eventPayload),
credentials: 'include',
Expand Down Expand Up @@ -232,7 +231,7 @@ describe('FetchTransport', () => {
window.fetch.mockImplementation(() => Promise.resolve({ status: 200, headers: new Headers() }));

const eventRes = await transport.sendEvent(eventPayload);
expect(eventRes.status).toBe(Status.Success);
expect(eventRes.status).toBe('success');
expect(fetch).toHaveBeenCalledTimes(2);
});

Expand Down Expand Up @@ -275,7 +274,7 @@ describe('FetchTransport', () => {
window.fetch.mockImplementation(() => Promise.resolve({ status: 200, headers: new Headers() }));

const transactionRes = await transport.sendEvent(transactionPayload);
expect(transactionRes.status).toBe(Status.Success);
expect(transactionRes.status).toBe('success');
expect(fetch).toHaveBeenCalledTimes(2);

try {
Expand All @@ -290,7 +289,7 @@ describe('FetchTransport', () => {
}

const eventRes = await transport.sendEvent(eventPayload);
expect(eventRes.status).toBe(Status.Success);
expect(eventRes.status).toBe('success');
expect(fetch).toHaveBeenCalledTimes(3);
});

Expand Down Expand Up @@ -357,11 +356,11 @@ describe('FetchTransport', () => {
window.fetch.mockImplementation(() => Promise.resolve({ status: 200, headers: new Headers() }));

const eventRes = await transport.sendEvent(eventPayload);
expect(eventRes.status).toBe(Status.Success);
expect(eventRes.status).toBe('success');
expect(fetch).toHaveBeenCalledTimes(2);

const transactionRes = await transport.sendEvent(transactionPayload);
expect(transactionRes.status).toBe(Status.Success);
expect(transactionRes.status).toBe('success');
expect(fetch).toHaveBeenCalledTimes(3);
});

Expand Down Expand Up @@ -428,11 +427,11 @@ describe('FetchTransport', () => {
window.fetch.mockImplementation(() => Promise.resolve({ status: 200, headers: new Headers() }));

const eventRes = await transport.sendEvent(eventPayload);
expect(eventRes.status).toBe(Status.Success);
expect(eventRes.status).toBe('success');
expect(fetch).toHaveBeenCalledTimes(2);

const transactionRes = await transport.sendEvent(transactionPayload);
expect(transactionRes.status).toBe(Status.Success);
expect(transactionRes.status).toBe('success');
expect(fetch).toHaveBeenCalledTimes(3);
});

Expand Down Expand Up @@ -460,7 +459,7 @@ describe('FetchTransport', () => {
window.fetch.mockImplementation(() => Promise.resolve({ status: 200, headers }));

let eventRes = await transport.sendEvent(eventPayload);
expect(eventRes.status).toBe(Status.Success);
expect(eventRes.status).toBe('success');
expect(fetch).toHaveBeenCalled();

try {
Expand All @@ -477,7 +476,7 @@ describe('FetchTransport', () => {
window.fetch.mockImplementation(() => Promise.resolve({ status: 200, headers: new Headers() }));

eventRes = await transport.sendEvent(eventPayload);
expect(eventRes.status).toBe(Status.Success);
expect(eventRes.status).toBe('success');
expect(fetch).toHaveBeenCalledTimes(2);
});

Expand All @@ -490,13 +489,13 @@ describe('FetchTransport', () => {
try {
await transport.sendEvent(eventPayload);
} catch (_) {
expect(spy).toHaveBeenCalledWith(Outcome.RateLimitBackoff, 'event');
expect(spy).toHaveBeenCalledWith('ratelimit_backoff', 'event');
}

try {
await transport.sendEvent(transactionPayload);
} catch (_) {
expect(spy).toHaveBeenCalledWith(Outcome.RateLimitBackoff, 'transaction');
expect(spy).toHaveBeenCalledWith('ratelimit_backoff', 'transaction');
}
});
});
Expand Down
Loading

0 comments on commit 1c52a91

Please sign in to comment.