Skip to content

Commit 87e50c9

Browse files
authored
Add setEnabled method (#193)
* Add setEnabled method * Create orange-pears-judge.md
1 parent 66f08ca commit 87e50c9

File tree

5 files changed

+56
-2
lines changed

5 files changed

+56
-2
lines changed

.changeset/orange-pears-judge.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"toucan-js": minor
3+
---
4+
5+
Add setEnabled method

packages/toucan-js/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ This SDK provides all options and methods of [Hub](https://github.com/getsentry/
2828

2929
### Additional methods
3030

31+
- `Toucan.setEnabled(enabled: boolean): void`: Can be used to disable and again enable the SDK later in your code.
3132
- `Toucan.setRequestBody(body: unknown): void`: Attaches request body to future events. `body` can be anything serializable.
3233

3334
## Integrations

packages/toucan-js/src/client.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,13 @@ export class ToucanClient extends BaseClient<ToucanClientOptions> {
127127
public setRequestBody(body: unknown) {
128128
this.getOptions().requestData = body;
129129
}
130+
131+
/**
132+
* Enable/disable the SDK.
133+
*
134+
* @param enabled
135+
*/
136+
public setEnabled(enabled: boolean): void {
137+
this.getOptions().enabled = enabled;
138+
}
130139
}

packages/toucan-js/src/sdk.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,13 @@ export class Toucan extends Hub {
6161
setRequestBody(body: unknown) {
6262
this.getClient<ToucanClient>()?.setRequestBody(body);
6363
}
64+
65+
/**
66+
* Enable/disable the SDK.
67+
*
68+
* @param enabled
69+
*/
70+
setEnabled(enabled: boolean): void {
71+
this.getClient<ToucanClient>()?.setEnabled(enabled);
72+
}
6473
}

packages/toucan-js/test/index.spec.ts

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ const GENERIC_EVENT_BODY_MATCHER = {
2121
contexts: expect.objectContaining({
2222
trace: expect.objectContaining({
2323
span_id: expect.any(String),
24-
trace_id: expect.any(String)
25-
})
24+
trace_id: expect.any(String),
25+
}),
2626
}),
2727
event_id: expect.any(String),
2828
timestamp: expect.any(Number),
@@ -237,6 +237,36 @@ describe('Toucan', () => {
237237
expect(requests.length).toBe(0);
238238
});
239239

240+
test('disable / enable', async () => {
241+
const toucan = new Toucan({
242+
dsn: VALID_DSN,
243+
context,
244+
});
245+
246+
// Sent
247+
toucan.captureMessage('test 1');
248+
249+
toucan.setEnabled(false);
250+
251+
// Not sent
252+
toucan.captureMessage('test 2');
253+
toucan.captureMessage('test 3');
254+
toucan.captureMessage('test 4');
255+
toucan.captureException(new Error());
256+
toucan.captureException(new Error());
257+
toucan.captureException(new Error());
258+
259+
toucan.setEnabled(true);
260+
261+
// Sent
262+
toucan.captureMessage('test 5');
263+
264+
const waitUntilResults = await getMiniflareWaitUntil(context);
265+
266+
expect(waitUntilResults.length).toBe(2);
267+
expect(requests.length).toBe(2);
268+
});
269+
240270
test('invalid URL does not fail', async () => {
241271
const toucan = new Toucan({
242272
dsn: VALID_DSN,

0 commit comments

Comments
 (0)