diff --git a/.github/workflows/integration_test.yml b/.github/workflows/integration_test.yml
index 8fd2424..686595e 100644
--- a/.github/workflows/integration_test.yml
+++ b/.github/workflows/integration_test.yml
@@ -14,7 +14,7 @@ jobs:
- name: Checkout branch
uses: actions/checkout@v3
with:
- token: ${{ secrets.CI_USER_TOKEN }}
+ token: ${{ secrets.CI_USER_TOKEN || secrets.GITHUB_TOKEN }}
repository: 'optimizely/travisci-tools'
path: 'home/runner/travisci-tools'
ref: 'master'
diff --git a/src/Provider.spec.tsx b/src/Provider.spec.tsx
index 84cda0a..4d89012 100644
--- a/src/Provider.spec.tsx
+++ b/src/Provider.spec.tsx
@@ -83,6 +83,8 @@ describe('OptimizelyProvider', () => {
});
it('should render successfully without user or userId provided', () => {
+ // @ts-ignore
+ mockReactClient.user = undefined;
render();
expect(mockReactClient.setUser).toHaveBeenCalledWith(DefaultUser);
@@ -95,6 +97,8 @@ describe('OptimizelyProvider', () => {
});
it('should succeed just userAttributes provided', () => {
+ // @ts-ignore
+ mockReactClient.user = undefined;
render();
expect(mockReactClient.setUser).toHaveBeenCalledWith({
@@ -103,6 +107,21 @@ describe('OptimizelyProvider', () => {
});
});
+ it('should succeed with the initial user available in client', () => {
+ render();
+
+ expect(mockReactClient.setUser).toHaveBeenCalledWith(user1);
+ });
+
+ it('should succeed with the initial user id and newly passed attributes', () => {
+ render();
+
+ expect(mockReactClient.setUser).toHaveBeenCalledWith({
+ id: user1.id,
+ attributes: { attr1: 'value2' },
+ });
+ });
+
it('should not update when isServerSide is true', () => {
// Initial render
const { rerender } = render();
diff --git a/src/Provider.tsx b/src/Provider.tsx
index b0da5ca..5d4a134 100644
--- a/src/Provider.tsx
+++ b/src/Provider.tsx
@@ -73,6 +73,12 @@ export class OptimizelyProvider extends React.Component