Skip to content

Commit da6ab91

Browse files
adasilvamhevery
adasilva
authored andcommitted
fix(platform-browser): support 0/false/null values in transfer_state (#22179)
Issue #22178 PR Close #22179
1 parent c4f841f commit da6ab91

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

packages/platform-browser/src/browser/transfer_state.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ export class TransferState {
9393
/**
9494
* Get the value corresponding to a key. Return `defaultValue` if key is not found.
9595
*/
96-
get<T>(key: StateKey<T>, defaultValue: T): T { return this.store[key] as T || defaultValue; }
96+
get<T>(key: StateKey<T>, defaultValue: T): T {
97+
return this.store[key] !== undefined ? this.store[key] as T : defaultValue;
98+
}
9799

98100
/**
99101
* Set the value corresponding to a key.

packages/platform-browser/test/browser/transfer_state_spec.ts

+21
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,27 @@ import {DOCUMENT} from '@angular/platform-browser/src/dom/dom_tokens';
7070
expect(transferState.hasKey(TEST_KEY)).toBe(true);
7171
});
7272

73+
it('supports setting and accessing value \'0\' via get', () => {
74+
const transferState: TransferState = TestBed.get(TransferState);
75+
transferState.set(TEST_KEY, 0);
76+
expect(transferState.get(TEST_KEY, 20)).toBe(0);
77+
expect(transferState.hasKey(TEST_KEY)).toBe(true);
78+
});
79+
80+
it('supports setting and accessing value \'false\' via get', () => {
81+
const transferState: TransferState = TestBed.get(TransferState);
82+
transferState.set(TEST_KEY, false);
83+
expect(transferState.get(TEST_KEY, 20)).toBe(false);
84+
expect(transferState.hasKey(TEST_KEY)).toBe(true);
85+
});
86+
87+
it('supports setting and accessing value \'null\' via get', () => {
88+
const transferState: TransferState = TestBed.get(TransferState);
89+
transferState.set(TEST_KEY, null);
90+
expect(transferState.get(TEST_KEY, 20)).toBe(null);
91+
expect(transferState.hasKey(TEST_KEY)).toBe(true);
92+
});
93+
7394
it('supports removing keys', () => {
7495
const transferState: TransferState = TestBed.get(TransferState);
7596
transferState.set(TEST_KEY, 20);

0 commit comments

Comments
 (0)