Skip to content

Commit 8fdf7ae

Browse files
tijnemamatijn-made
authored andcommitted
Add test for checking if CSRF token updated on render
1 parent 3337deb commit 8fdf7ae

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/LiveComponent/assets/test/controller/render.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -630,4 +630,23 @@ describe('LiveController rendering Tests', () => {
630630
// verify the selectedIndex of the select option 2 is 0
631631
expect(selectOption2.selectedIndex).toBe(0);
632632
});
633+
634+
it('backend will have a new csrf token', async () => {
635+
const test = await createTest(
636+
{},
637+
(data: any) => `
638+
<div ${initComponent(data)} data-live-csrf-value="${data.csrf}">
639+
</div>
640+
`
641+
);
642+
643+
test.expectsAjaxCall().serverWillChangeProps((data: any) => {
644+
// change csrf token
645+
data.csrf = 'Hello';
646+
});
647+
648+
await test.component.render();
649+
650+
expect(test.mockedBackend.csrfToken).toEqual('Hello');
651+
});
633652
});

src/LiveComponent/assets/test/tools.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ class FunctionalTest {
9898
class MockedBackend implements BackendInterface {
9999
private expectedMockedAjaxCalls: Array<MockedAjaxCall> = [];
100100

101+
public csrfToken: string|null = null;
102+
101103
addMockedAjaxCall(mock: MockedAjaxCall) {
102104
this.expectedMockedAjaxCalls.push(mock);
103105
}
@@ -139,6 +141,10 @@ class MockedBackend implements BackendInterface {
139141
return matchedMock.createBackendRequest();
140142
}
141143

144+
updateCsrfToken(csrfToken: string) {
145+
this.csrfToken = csrfToken;
146+
}
147+
142148
getExpectedMockedAjaxCalls(): Array<MockedAjaxCall> {
143149
return this.expectedMockedAjaxCalls;
144150
}

0 commit comments

Comments
 (0)