@newskit-render/core 4.5.2 → 4.6.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.5.2](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/core@4.5.2-alpha.1...@newskit-render/core@4.5.2) (2023-05-02)
7
+
8
+ **Note:** Version bump only for package @newskit-render/core
9
+
10
+
11
+
12
+
13
+
6
14
  ## [4.5.1](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/core@4.5.1-alpha.1...@newskit-render/core@4.5.1) (2023-04-27)
7
15
 
8
16
  **Note:** Version bump only for package @newskit-render/core
package/README.md CHANGED
@@ -253,20 +253,20 @@ const AppContextProvider = ({ children }: { children: JSX.Element }) => {
253
253
  export { AppContextProvider, AppContext }
254
254
  ```
255
255
 
256
- ### create-render-app effected comments
256
+ ### cra-effected comments
257
257
 
258
258
  You may see some lines of code that have comments next to them:
259
259
 
260
260
  ```
261
- code here // create-render-app effected
261
+ code here /* cra-effected */
262
262
  ```
263
263
 
264
264
  Or around them:
265
265
 
266
266
  ```
267
- // start create-render-app effected
267
+ /* start cra-effected */
268
268
  code here
269
- // end create-render-app effected
269
+ /* end cra-effected */
270
270
  ```
271
271
 
272
272
  This comment denotes that the line or lines in between are effected by the running of the [@newskit-render/create-render-app package](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/create-render-app).
@@ -97,13 +97,13 @@ jest.mock('newrelic', () => {
97
97
  }
98
98
  })
99
99
 
100
- // start create-render-app effected
100
+ /* start cra-effected */
101
101
  jest.mock('@newskit-render/feature-flags', () => ({
102
102
  initAndGetFeatureFlag: jest
103
103
  .fn()
104
104
  .mockImplementation(() => Promise.resolve({ test: 'test' })),
105
105
  }))
106
- // end create-render-app effected
106
+ /* end cra-effected */
107
107
 
108
108
  jest.mock('@newskit-render/api', () => ({
109
109
  ClientTypes: { nkapi: 'nkapi' },
@@ -147,7 +147,7 @@ describe('Article', () => {
147
147
  ...props,
148
148
  showAds: true,
149
149
  user,
150
- featureFlags: { test: 'test' }, // create-render-app effected
150
+ featureFlags: { test: 'test' } /* cra-effected */,
151
151
  },
152
152
  })
153
153
  expect(setHeaderMock).toHaveBeenCalledWith(
@@ -25,13 +25,13 @@ jest.mock('cross-fetch', () =>
25
25
  )
26
26
  )
27
27
 
28
- // start create-render-app effected
28
+ /* start cra-effected */
29
29
  jest.mock('@newskit-render/feature-flags', () => ({
30
30
  initAndGetFeatureFlag: jest
31
31
  .fn()
32
32
  .mockImplementation(() => Promise.resolve({ test: 'test' })),
33
33
  }))
34
- // end create-render-app effected
34
+ /* end cra-effected */
35
35
 
36
36
  jest.mock('@newskit-render/api', () => ({
37
37
  ClientTypes: { nkapi: 'nkapi' },
@@ -90,7 +90,7 @@ describe('getServerSideProps', () => {
90
90
  },
91
91
  showAds: true,
92
92
  user,
93
- featureFlags: { test: 'test' }, // create-render-app effected
93
+ featureFlags: { test: 'test' } /* cra-effected */,
94
94
  },
95
95
  })
96
96
  )
@@ -34,13 +34,13 @@ jest.mock('cross-fetch', () =>
34
34
  )
35
35
  )
36
36
 
37
- // start create-render-app effected
37
+ /* start cra-effected */
38
38
  jest.mock('@newskit-render/feature-flags', () => ({
39
39
  initAndGetFeatureFlag: jest
40
40
  .fn()
41
41
  .mockImplementation(() => Promise.resolve({ test: 'test' })),
42
42
  }))
43
- // end create-render-app effected
43
+ /* end cra-effected */
44
44
 
45
45
  jest.mock('@newskit-render/api', () => ({
46
46
  ClientTypes: { nkapi: 'nkapi' },
@@ -74,7 +74,7 @@ describe('Article', () => {
74
74
  ...props,
75
75
  showAds: true,
76
76
  user,
77
- featureFlags: { test: 'test' }, // create-render-app effected
77
+ featureFlags: { test: 'test' } /* cra-effected */,
78
78
  },
79
79
  })
80
80
  expect(setHeaderMock).toHaveBeenCalledWith(
@@ -0,0 +1,65 @@
1
+ import React, { useEffect, useState } from 'react'
2
+ import { useRouter } from 'next/router'
3
+ import fetch from 'cross-fetch'
4
+ import { setCookie, deleteCookie } from './utils'
5
+ import { options } from './accounts'
6
+
7
+ export const AccountDropdown: React.FC = () => {
8
+ const [isOpen, setIsOpen] = useState(false)
9
+ const router = useRouter()
10
+ const dropdownOpenHandler = (e) => {
11
+ if (e.code === 'NumpadSubtract' || e.code === 'Backquote') {
12
+ setIsOpen((currentState) => {
13
+ const updatedState = !currentState
14
+
15
+ return updatedState
16
+ })
17
+ }
18
+ }
19
+
20
+ const handleChange = async (e) => {
21
+ const result = await fetch('/api/account/get-session', {
22
+ method: 'post',
23
+ body: JSON.stringify({ option: e.target.value }),
24
+ })
25
+ const data = await result.json()
26
+
27
+ deleteCookie('acs_ngn', '/', null)
28
+ deleteCookie('acs_tnl', '/', null)
29
+ setCookie(
30
+ data.accountProviderCookieName,
31
+ data.value,
32
+ new Date(2032, 1, 1),
33
+ '/',
34
+ null,
35
+ true
36
+ )
37
+ router.reload()
38
+ }
39
+
40
+ useEffect(() => {
41
+ window.addEventListener('keyup', dropdownOpenHandler)
42
+ return () => window.removeEventListener('keyup', dropdownOpenHandler)
43
+ }, [])
44
+
45
+ return isOpen ? (
46
+ <select
47
+ onChange={handleChange}
48
+ data-testid="account-switcher"
49
+ style={{
50
+ position: 'fixed',
51
+ top: '3px',
52
+ right: '3px',
53
+ maxWidth: '150px',
54
+ zIndex: 3,
55
+ }}
56
+ >
57
+ <option>Select subscription</option>
58
+ {options.map((option) => (
59
+ <option key={option} value={option}>
60
+ {option}
61
+ </option>
62
+ ))}
63
+ </select>
64
+ ) : null
65
+ }
@@ -0,0 +1,83 @@
1
+ import { fireEvent, waitFor } from '@testing-library/react'
2
+ import { AccountDropdown, getAccounts } from '../'
3
+ import { renderWithTheme } from '../../../helpers/test-utils'
4
+ import { useRouter } from 'next/router'
5
+
6
+ const useRouterMock = useRouter as jest.Mock
7
+
8
+ jest.mock('next/router', () => {
9
+ return {
10
+ useRouter: jest.fn(),
11
+ }
12
+ })
13
+
14
+ jest.mock('cross-fetch', () =>
15
+ jest
16
+ .fn()
17
+ .mockImplementationOnce(() =>
18
+ Promise.resolve({
19
+ json: () => ({ accountProviderCookieName: 'test', value: 'test' }),
20
+ })
21
+ )
22
+ .mockImplementationOnce(() => {
23
+ throw new Error()
24
+ })
25
+ )
26
+
27
+ describe('AccountDropdown', () => {
28
+ beforeEach(() => {
29
+ jest.clearAllMocks()
30
+ useRouterMock.mockImplementation(() => {
31
+ return { reload: jest.fn() }
32
+ })
33
+ })
34
+
35
+ it('Should not render the dropdown unless it is toggled', () => {
36
+ const { queryByDisplayValue } = renderWithTheme(AccountDropdown)
37
+
38
+ const dropdown = queryByDisplayValue('Select subscription')
39
+
40
+ expect(dropdown).toBeFalsy()
41
+ })
42
+
43
+ it('Should render the dropdown when Backquote is pressed', () => {
44
+ const { container, getByDisplayValue } = renderWithTheme(AccountDropdown)
45
+
46
+ fireEvent.keyUp(container, { code: 'Backquote' })
47
+
48
+ expect(getByDisplayValue('Select subscription')).toBeTruthy()
49
+ })
50
+
51
+ it('Should render the dropdown when NumpadSubtract is pressed', () => {
52
+ const { container, getByDisplayValue } = renderWithTheme(AccountDropdown)
53
+
54
+ fireEvent.keyUp(container, { code: 'NumpadSubtract' })
55
+
56
+ expect(getByDisplayValue('Select subscription')).toBeTruthy()
57
+ })
58
+
59
+ it('Should select an account', async () => {
60
+ const { container, getByTestId } = renderWithTheme(AccountDropdown)
61
+
62
+ await waitFor(() => {
63
+ fireEvent.keyUp(container, { code: 'NumpadSubtract' })
64
+ })
65
+
66
+ await waitFor(() => {
67
+ fireEvent.change(getByTestId('account-switcher'), {
68
+ target: { value: 'Times voucher subscription credit card' },
69
+ })
70
+ })
71
+
72
+ expect(useRouterMock).toHaveBeenCalled()
73
+ })
74
+
75
+ it('Should return account object', () => {
76
+ const options = getAccounts('sun', 'times')
77
+ expect(options['Sun with subscription']).toEqual({
78
+ username: 'render-e2e-subscription@yopmail.com',
79
+ password: 'sun',
80
+ tenant: 'SUN',
81
+ })
82
+ })
83
+ })
@@ -0,0 +1,47 @@
1
+ export const options = [
2
+ 'Sun with subscription',
3
+ 'Times voucher subscription credit card',
4
+ 'Times voucher subscription direct debit',
5
+ 'Times voucher subscription paypal',
6
+ 'Time DTC print credit card',
7
+ 'Time Digital subscription credit card',
8
+ 'Time DigiPrint subscription credit card',
9
+ ]
10
+
11
+ export const getAccounts = (sunPassword, timesPassword) => ({
12
+ 'Sun with subscription': {
13
+ username: 'render-e2e-subscription@yopmail.com',
14
+ password: sunPassword,
15
+ tenant: 'SUN',
16
+ },
17
+ 'Times voucher subscription credit card': {
18
+ username: 'cmp-test-card-20-09-2022@yopmail.com',
19
+ password: timesPassword,
20
+ tenant: 'TIMES',
21
+ },
22
+ 'Times voucher subscription direct debit': {
23
+ username: 'cmp-test-direct-20-09-22@yopmail.com',
24
+ password: timesPassword,
25
+ tenant: 'TIMES',
26
+ },
27
+ 'Times voucher subscription paypal': {
28
+ username: 'cmp-test-paypal-20-09-22@yopmail.com',
29
+ password: timesPassword,
30
+ tenant: 'TIMES',
31
+ },
32
+ 'Time DTC print credit card': {
33
+ username: 'cmp-dtc-card-20-09-22@yopmail.com',
34
+ password: timesPassword,
35
+ tenant: 'TIMES',
36
+ },
37
+ 'Time Digital subscription credit card': {
38
+ username: 'cmp-digi-card-20-09-22@yopmail.com',
39
+ password: timesPassword,
40
+ tenant: 'TIMES',
41
+ },
42
+ 'Time DigiPrint subscription credit card': {
43
+ username: 'digi-print-card-15-11-22@yopmail.com',
44
+ password: timesPassword,
45
+ tenant: 'TIMES',
46
+ },
47
+ })
@@ -0,0 +1,2 @@
1
+ export * from './AccountDropdown'
2
+ export * from './accounts'
@@ -0,0 +1,21 @@
1
+ export const setCookie = (name, value, expires, path, domain, secure) => {
2
+ let cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)
3
+
4
+ if (expires) {
5
+ cookie += '; expires=' + expires.toUTCString()
6
+ }
7
+
8
+ if (path) {
9
+ cookie += '; path=' + path
10
+ }
11
+
12
+ if (secure) {
13
+ cookie += '; secure'
14
+ }
15
+
16
+ document.cookie = cookie
17
+ }
18
+
19
+ export const deleteCookie = (name, path, domain) => {
20
+ setCookie(name, '', new Date(0), path, domain, false)
21
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newskit-render/core",
3
- "version": "4.5.2",
3
+ "version": "4.6.0-alpha.0",
4
4
  "description": "Newskit Render - Core package",
5
5
  "author": "",
6
6
  "license": "UNLICENSED",
@@ -41,13 +41,13 @@
41
41
  "@emotion/styled": "11.9.3",
42
42
  "@newskit-render/api": "^1.6.8",
43
43
  "@newskit-render/auth": "^1.3.11",
44
- "@newskit-render/checkout": "^3.2.0",
44
+ "@newskit-render/checkout": "^3.2.1-alpha.0",
45
45
  "@newskit-render/feature-flags": "^1.4.11",
46
46
  "@newskit-render/feed": "^1.4.18",
47
- "@newskit-render/my-account": "^6.6.0",
48
- "@newskit-render/shared-components": "^3.7.0",
49
- "@newskit-render/standalone-components": "^3.7.0",
50
- "@newskit-render/validation": "^1.6.1",
47
+ "@newskit-render/my-account": "^6.6.1-alpha.0",
48
+ "@newskit-render/shared-components": "^3.7.1-alpha.0",
49
+ "@newskit-render/standalone-components": "^3.7.1-alpha.0",
50
+ "@newskit-render/validation": "^1.7.0-alpha.0",
51
51
  "@next/font": "13.1.6",
52
52
  "cross-fetch": "3.1.5",
53
53
  "graphql": "16.6.0",
@@ -9,7 +9,7 @@ import {
9
9
  import { UserData } from '@newskit-render/my-account'
10
10
  import { ArticleRecommendationsProvider } from '@newskit-render/standalone-components'
11
11
  import { getHost } from '@newskit-render/shared-components'
12
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
12
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
13
13
  import { GET_UNIVERSAL_ARTICLE } from '../../../queries'
14
14
  import ArticlePage, { UniversalArticle } from '../../../components/article'
15
15
  import { fetchUser } from '../../../helpers/getUser'
@@ -20,7 +20,7 @@ import {
20
20
  gscId as configGscId,
21
21
  newskitApiEnvUrl,
22
22
  newskitApiXApiKey,
23
- optimizelysdkKey, // create-render-app effected
23
+ optimizelysdkKey /* cra-effected */,
24
24
  } from '../../../config'
25
25
 
26
26
  export type ArticleSlug = {
@@ -77,7 +77,9 @@ export async function getServerSideProps(context) {
77
77
  }),
78
78
  await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
79
79
  ])
80
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
80
+ /* start cra-effected */
81
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
82
+ /* end cra-effected */
81
83
 
82
84
  addCacheHeaders(context.res)
83
85
  return {
@@ -94,7 +96,7 @@ export async function getServerSideProps(context) {
94
96
  newskitApiEnvUrl,
95
97
  newskitApiXApiKey,
96
98
  },
97
- featureFlags, // create-render-app effected
99
+ featureFlags /* cra-effected */,
98
100
  },
99
101
  }
100
102
  }
@@ -8,7 +8,7 @@ import {
8
8
  import { getHost } from '@newskit-render/shared-components'
9
9
  import { Block, Cell, TitleBar } from 'newskit'
10
10
  import { UserData } from '@newskit-render/my-account'
11
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
11
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
12
12
  import { fetchUser } from '../../../helpers/getUser'
13
13
  import { getAccountQueryUrl } from '../../../constants'
14
14
  import { addCacheHeaders } from '../../../helpers/addCacheHeaders'
@@ -16,7 +16,7 @@ import Layout from '../../../components/layout'
16
16
  import {
17
17
  newskitApiEnvUrl,
18
18
  newskitApiXApiKey,
19
- optimizelysdkKey, // create-render-app effected
19
+ optimizelysdkKey /* cra-effected */,
20
20
  } from '../../../config'
21
21
 
22
22
  export type RelatedArticles = {
@@ -79,7 +79,9 @@ export async function getServerSideProps(context) {
79
79
  const [user] = await Promise.all([
80
80
  await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
81
81
  ])
82
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
82
+ /* start cra-effected */
83
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
84
+ /* end cra-effected */
83
85
 
84
86
  addCacheHeaders(context.res)
85
87
 
@@ -92,7 +94,7 @@ export async function getServerSideProps(context) {
92
94
  newskitApiEnvUrl,
93
95
  newskitApiXApiKey,
94
96
  },
95
- featureFlags, // create-render-app effected
97
+ featureFlags /* cra-effected */,
96
98
  },
97
99
  }
98
100
  }
@@ -5,8 +5,8 @@ import {
5
5
  ClientTypes,
6
6
  } from '@newskit-render/api'
7
7
  import { getHost } from '@newskit-render/shared-components'
8
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
9
- import { optimizelysdkKey } from '../../config' // create-render-app effected
8
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
9
+ import { optimizelysdkKey } from '../../config' /* cra-effected */
10
10
  import { GET_PAGE } from '../../queries'
11
11
  import SectionPage from '../../components/section'
12
12
  import { fetchUser } from '../../helpers/getUser'
@@ -46,7 +46,9 @@ export async function getServerSideProps(context) {
46
46
  notFound: true,
47
47
  }
48
48
  }
49
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
49
+ /* start cra-effected */
50
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
51
+ /* end cra-effected */
50
52
 
51
53
  addCacheHeaders(context.res)
52
54
  return {
@@ -55,7 +57,7 @@ export async function getServerSideProps(context) {
55
57
  isIndexPage: true,
56
58
  showAds: true,
57
59
  user,
58
- featureFlags, // create-render-app effected
60
+ featureFlags /* cra-effected */,
59
61
  },
60
62
  }
61
63
  }
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
2
  import { Cancellation, getProviderProps } from '@newskit-render/my-account'
3
3
  import newrelic from 'newrelic'
4
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
5
- import { optimizelysdkKey } from '../../../config' // create-render-app effected
4
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
5
+ import { optimizelysdkKey } from '../../../config' /* cra-effected */
6
6
  import validation from '../../../validation'
7
7
 
8
8
  const AccountCancellation = (props) => (
@@ -13,9 +13,11 @@ export default AccountCancellation
13
13
 
14
14
  export const getServerSideProps = async (context) => {
15
15
  newrelic.setTransactionName('Account: Cancellation')
16
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
16
+ /* start cra-effected */
17
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
18
+ /* end cra-effected */
17
19
  return getProviderProps(
18
20
  { ...context, provider: 'Cancellation' },
19
- { featureFlags } // create-render-app effected
21
+ { featureFlags } /* cra-effected */
20
22
  )
21
23
  }
@@ -6,8 +6,8 @@ import {
6
6
  NotFound,
7
7
  editComponentMap,
8
8
  } from '@newskit-render/my-account'
9
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
10
- import { optimizelysdkKey } from '../../../config' // create-render-app effected
9
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
10
+ import { optimizelysdkKey } from '../../../config' /* cra-effected */
11
11
  import validation from '../../../validation'
12
12
 
13
13
  const AccountEditField = (props) => {
@@ -36,9 +36,11 @@ export const getServerSideProps = async (context) => {
36
36
  // Logging the error for being captured by New Relic
37
37
  console.error(`An error ${context.res.statusCode} occurred on server`)
38
38
  }
39
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
39
+ /* start cra-effected */
40
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
41
+ /* end cra-effected */
40
42
  return getProviderProps(
41
43
  { ...context, provider: 'EditField' },
42
- { featureFlags } // create-render-app effected
44
+ { featureFlags } /* cra-effected */
43
45
  )
44
46
  }
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
2
  import { getProviderProps, HolidayStop } from '@newskit-render/my-account'
3
3
  import newrelic from 'newrelic'
4
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
5
- import { optimizelysdkKey } from '../../../config' // create-render-app effected
4
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
5
+ import { optimizelysdkKey } from '../../../config' /* cra-effected */
6
6
 
7
7
  const AccountHolidayStop = (props) => <HolidayStop {...props} />
8
8
 
@@ -10,9 +10,11 @@ export default AccountHolidayStop
10
10
 
11
11
  export const getServerSideProps = async (context) => {
12
12
  newrelic.setTransactionName('Account: Book a Holiday Stop')
13
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
13
+ /* start cra-effected */
14
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
15
+ /* end cra-effected */
14
16
  return getProviderProps(
15
17
  { ...context, provider: 'HolidayStop' },
16
- { featureFlags } // create-render-app effected
18
+ { featureFlags } /* cra-effected */
17
19
  )
18
20
  }
@@ -1,18 +1,30 @@
1
1
  import React from 'react'
2
2
  import newrelic from 'newrelic'
3
3
  import { PersonalDetails, getProviderProps } from '@newskit-render/my-account'
4
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
5
- import { optimizelysdkKey } from '../../config' // create-render-app effected
4
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
5
+ import { optimizelysdkKey } from '../../config' /* cra-effected */
6
+ import { AccountDropdown } from '../../components/AccountDropdown' /* cra-disabled */
6
7
 
7
- const AccountPersonalDetails = (props) => <PersonalDetails {...props} />
8
+ const AccountPersonalDetails = (props) => (
9
+ <>
10
+ {
11
+ /* start cra-disabled */
12
+ <AccountDropdown />
13
+ /* end cra-disabled */
14
+ }
15
+ <PersonalDetails {...props} />
16
+ </>
17
+ )
8
18
 
9
19
  export default AccountPersonalDetails
10
20
 
11
21
  export const getServerSideProps = async (context) => {
12
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
22
+ /* start cra-effected */
23
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
24
+ /* end cra-effected */
13
25
  newrelic.setTransactionName('Account: Personal details')
14
26
  return getProviderProps(
15
27
  { ...context, provider: 'PersonalDetails' },
16
- { featureFlags } // create-render-app effected
28
+ { featureFlags } /* cra-effected */
17
29
  )
18
30
  }
@@ -4,8 +4,8 @@ import {
4
4
  getProviderProps,
5
5
  } from '@newskit-render/my-account'
6
6
  import newrelic from 'newrelic'
7
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
8
- import { optimizelysdkKey } from '../../../config' // create-render-app effected
7
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
8
+ import { optimizelysdkKey } from '../../../config' /* cra-effected */
9
9
 
10
10
  const AccountNewslettersAndAlerts = (props) => (
11
11
  <NewslettersAndAlerts {...props} />
@@ -15,9 +15,11 @@ export default AccountNewslettersAndAlerts
15
15
 
16
16
  export const getServerSideProps = async (context) => {
17
17
  newrelic.setTransactionName('Account: Newsletters and Alerts')
18
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
18
+ /* start cra-effected */
19
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
20
+ /* end cra-effected */
19
21
  return getProviderProps(
20
22
  { ...context, provider: 'NewslettersAndAlerts' },
21
- { featureFlags } // create-render-app effected
23
+ { featureFlags } /* cra-effected */
22
24
  )
23
25
  }
@@ -5,8 +5,8 @@ import {
5
5
  getProviderProps,
6
6
  PaymentProvider,
7
7
  } from '@newskit-render/my-account'
8
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
9
- import { optimizelysdkKey } from '../../../config' // create-render-app effected
8
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
9
+ import { optimizelysdkKey } from '../../../config' /* cra-effected */
10
10
 
11
11
  const AccountCancellation = (props) => <Payment {...props} />
12
12
 
@@ -14,7 +14,9 @@ export default AccountCancellation
14
14
 
15
15
  export const getServerSideProps = async (context) => {
16
16
  newrelic.setTransactionName('Edit Payment method')
17
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
17
+ /* start cra-effected */
18
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
19
+ /* end cra-effected */
18
20
 
19
21
  return getProviderProps(
20
22
  {
@@ -22,6 +24,6 @@ export const getServerSideProps = async (context) => {
22
24
  provider: 'Payment',
23
25
  paymentProvider: PaymentProvider.Zuora,
24
26
  },
25
- { featureFlags } // create-render-app effected
27
+ { featureFlags } /* cra-effected */
26
28
  )
27
29
  }
@@ -4,8 +4,8 @@ import {
4
4
  getProviderProps,
5
5
  } from '@newskit-render/my-account'
6
6
  import newrelic from 'newrelic'
7
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
8
- import { optimizelysdkKey } from '../../../config' // create-render-app effected
7
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
8
+ import { optimizelysdkKey } from '../../../config' /* cra-effected */
9
9
 
10
10
  const AccountSubscriptionAndBilling = (props) => (
11
11
  <SubscriptionAndBilling {...props} />
@@ -15,13 +15,15 @@ export default AccountSubscriptionAndBilling
15
15
 
16
16
  export const getServerSideProps = async (context) => {
17
17
  newrelic.setTransactionName('Account: Subscription and Billing')
18
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
18
+ /* start cra-effected */
19
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
20
+ /* end cra-effected */
19
21
  const result = await getProviderProps(
20
22
  {
21
23
  ...context,
22
24
  provider: 'SubscriptionAndBilling',
23
25
  },
24
- { featureFlags } // create-render-app effected
26
+ { featureFlags } /* cra-effected */
25
27
  )
26
28
 
27
29
  return result
@@ -2,6 +2,7 @@ import { fetchSessionCookie } from '@newskit-render/api'
2
2
  import { safeJsonParse } from '@newskit-render/shared-components'
3
3
  import { NextApiRequest, NextApiResponse } from 'next'
4
4
  import { acsSessionUrlTimes, acsSessionUrlSun } from '../../../../config'
5
+ import { getAccounts } from '../../../../components/AccountDropdown'
5
6
 
6
7
  const tenantMap = {
7
8
  SUN: acsSessionUrlSun,
@@ -9,14 +10,24 @@ const tenantMap = {
9
10
  }
10
11
 
11
12
  const handler = async (req: NextApiRequest, res: NextApiResponse) => {
12
- const { username, password, tenant } = safeJsonParse(req.body)
13
- const tenantUrl = tenantMap[tenant]
13
+ if (process.env.TM_ACCOUNTS_PASSWORD && process.env.NGN_ACCOUNTS_PASSWORD) {
14
+ const options = getAccounts(
15
+ process.env.NGN_ACCOUNTS_PASSWORD,
16
+ process.env.TM_ACCOUNTS_PASSWORD
17
+ )
18
+ const { option } = safeJsonParse(req.body)
19
+ const { username, password, tenant } = options[option]
14
20
 
15
- const result = await fetchSessionCookie({
16
- username,
17
- password,
18
- tenantUrl,
19
- })
20
- res.send(result)
21
+ const tenantUrl = tenantMap[tenant]
22
+
23
+ const result = await fetchSessionCookie({
24
+ username,
25
+ password,
26
+ tenantUrl,
27
+ })
28
+ res.send(result)
29
+ } else {
30
+ res.end()
31
+ }
21
32
  }
22
33
  export default handler
package/pages/index.tsx CHANGED
@@ -4,9 +4,9 @@ import {
4
4
  getAcsCookie,
5
5
  ClientTypes,
6
6
  } from '@newskit-render/api'
7
- import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' // create-render-app effected
7
+ import { initAndGetFeatureFlag } from '@newskit-render/feature-flags' /* cra-effected */
8
8
  import { getHost } from '@newskit-render/shared-components'
9
- import { optimizelysdkKey } from '../config' // create-render-app effected
9
+ import { optimizelysdkKey } from '../config' /* cra-effected */
10
10
  import { GET_PAGE } from '../queries'
11
11
  import SectionPage from '../components/section'
12
12
  import { fetchUser } from '../helpers/getUser'
@@ -34,7 +34,9 @@ export async function getServerSideProps(context) {
34
34
  }),
35
35
  await fetchUser(acsCookie, getAccountQueryUrl(siteHost)),
36
36
  ])
37
- const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey) // create-render-app effected
37
+ /* start cra-effected */
38
+ const featureFlags = await initAndGetFeatureFlag(optimizelysdkKey)
39
+ /* end cra-effected */
38
40
 
39
41
  addCacheHeaders(context.res)
40
42
  const { page } = data
@@ -43,7 +45,7 @@ export async function getServerSideProps(context) {
43
45
  page,
44
46
  showAds: true,
45
47
  user,
46
- featureFlags, // create-render-app effected
48
+ featureFlags /* cra-effected */,
47
49
  },
48
50
  }
49
51
  }