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