Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/compiler/src/render3/r3_deferred_blocks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const HYDRATE_WHEN_PATTERN = /^hydrate\s+when\s/;
const HYDRATE_ON_PATTERN = /^hydrate\s+on\s/;

/** Pattern to identify a `hydrate never` trigger. */
const HYDRATE_NEVER_PATTERN = /^hydrate\s+never\s*/;
const HYDRATE_NEVER_PATTERN = /^hydrate\s+never(\s*)$/;

/** Pattern to identify a `minimum` parameter in a block. */
const MINIMUM_PARAMETER_PATTERN = /^minimum\s/;
Expand Down
26 changes: 26 additions & 0 deletions packages/compiler/test/render3/r3_template_transform_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1419,6 +1419,32 @@ describe('R3 template transform', () => {
);
});

it('should report `hydrate never` used with additonal characters', () => {
expect(() => parse('@defer (hydrate never, and thank you) {hello}')).toThrowError(
/Unrecognized trigger/,
);
});

it('should not report an error when `hydrate never` is used with additonal blocks', () => {
expect(() => parse('@defer (hydrate never; on idle;) {hello}')).not.toThrowError(
/Unrecognized trigger/,
);
});

it('should not report an error when `hydrate never` is used with spaces', () => {
expect(() => parse('@defer(hydrate never ; on idle ;) {hello}')).not.toThrowError(
/Unrecognized trigger/,
);
});

it('should not report an error when `hydrate never` is used after another block', () => {
expect(() =>
parse(`@defer(
on idle;
hydrate never) {hello}`),
).not.toThrowError(/Unrecognized trigger/);
});

it('should report when `hydrate never` is used together with another `hydrate` trigger', () => {
// Extra trigger after `hydrate never`.
expect(() =>
Expand Down