Skip to content

Commit

Permalink
Merge pull request #2710 from RedHatInsights/master
Browse files Browse the repository at this point in the history
[stable] Update build
  • Loading branch information
Hyperkid123 authored Dec 8, 2023
2 parents b5605c6 + 339cceb commit 7ed6355
Show file tree
Hide file tree
Showing 125 changed files with 6,759 additions and 3,102 deletions.
27 changes: 27 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,33 @@ module.exports = {
rules: {
'react/prop-types': 'off',
'@typescript-eslint/no-unused-vars': ['error', { ignoreRestSiblings: true, args: 'after-used' }],
'no-restricted-imports': [
'error',
{
// restrict importing auth packages methods directly
// Use of the ChromeAuthContext must be enforced
paths: [
{
name: 'react-oidc-context',
message: 'Do not import react-oidc-context directly. Use the ChromeAuthContext instead!',
},
{
name: 'oidc-client-ts',
message: 'Do not import oidc-client-ts directly. Use the ChromeAuthContext instead!',
},
],
patterns: [
{
group: ['**/cognito/*'],
message: 'Do not import cognito auth methods directly. Use the ChromeAuthContext instead!',
},
{
group: ['**/OIDCConnector/utils'],
message: 'Do not OIDC auth utils directly. Use the ChromeAuthContext instead!',
},
],
},
],
},
},
],
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ Session.vim
.idea/
.vscode/
coverage/
.nyc_output
cypress-coverage

# cypress diff snapshots
cypress/**/*.diff.png
Expand Down
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
include:
- stage: Test
if: branch != nightly
script: npm run circular && npm run lint && npm run test && npx codecov && npm run test:ct
script: npm run circular && npm run lint && npm run test && npm run test:ct && npx codecov
- stage: Deploy prod-stable
if: branch = prod-stable AND type != pull_request
name: deploy:prod-stable
Expand Down
2 changes: 2 additions & 0 deletions config/setupTests.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { TextDecoder, TextEncoder } from 'util';
import 'whatwg-fetch';

global.SVGPathElement = function () {};

global.MutationObserver = class {
Expand Down
10 changes: 10 additions & 0 deletions config/webpack.cy.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,16 @@ const JSConfig = {
loader: 'swc-loader',
options: {
jsc: {
experimental: {
plugins: [
[
'swc-plugin-coverage-instrument',
{
compact: false,
},
],
],
},
parser: {
syntax: 'typescript',
tsx: true,
Expand Down
2 changes: 2 additions & 0 deletions cypress.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ export default defineConfig({
launchOptions.preferences.height = 720;
}
});
require('@cypress/code-coverage/task')(on, config);
return config;
},
video: false,
devServer: {
Expand Down
3 changes: 2 additions & 1 deletion cypress/.eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"cy": "readonly"
},
"rules": {
"react/prop-types": "off"
"react/prop-types": "off",
"no-restricted-imports": "off"
}
}
42 changes: 30 additions & 12 deletions cypress/component/DefaultLayout.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,7 @@ import ChromeNavItem from '../../src/components/Navigation/ChromeNavItem';
import { IntlProvider } from 'react-intl';
import { FeatureFlagsProvider } from '../../src/components/FeatureFlags';
import Footer from '../../src/components/Footer/Footer';

const Wrapper = ({ children, store }) => (
<IntlProvider locale="en">
<ScalprumProvider config={{}}>
<Provider store={store}>
<FeatureFlagsProvider>
<BrowserRouter>{children}</BrowserRouter>
</FeatureFlagsProvider>
</Provider>
</ScalprumProvider>
</IntlProvider>
);
import ChromeAuthContext from '../../src/auth/ChromeAuthContext';

const testUser = {
identity: {
Expand All @@ -45,6 +34,35 @@ const testUser = {
},
};

const chromeAuthContextValue = {
doOffline: () => Promise.resolve(),
getOfflineToken: () => Promise.resolve(),
getToken: () => Promise.resolve(''),
getUser: () => Promise.resolve(testUser),
login: () => Promise.resolve(),
loginAllTabs: () => Promise.resolve(),
logout: () => Promise.resolve(),
logoutAllTabs: () => Promise.resolve(),
ready: true,
token: '',
tokenExpires: 0,
user: testUser,
};

const Wrapper = ({ children, store }) => (
<IntlProvider locale="en">
<ChromeAuthContext.Provider value={chromeAuthContextValue}>
<ScalprumProvider config={{}}>
<Provider store={store}>
<FeatureFlagsProvider>
<BrowserRouter>{children}</BrowserRouter>
</FeatureFlagsProvider>
</Provider>
</ScalprumProvider>
</ChromeAuthContext.Provider>
</IntlProvider>
);

const SidebarMock = ({ loaded, schema: { navItems: items } = {} }) => {
if (!loaded) {
return null;
Expand Down
44 changes: 25 additions & 19 deletions cypress/component/GatewayErrors.cy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,32 @@ import { FeatureFlagsProvider } from '../../src/components/FeatureFlags';
import { loadModulesSchema, userLogIn } from '../../src/redux/actions';
import qe from '../../src/utils/iqeEnablement';
import { COMPLIACE_ERROR_CODES } from '../../src/utils/responseInterceptors';
import LibtJWTContext from '../../src/components/LibJWTContext';
import testUserJson from '../fixtures/testUser.json';
import { ChromeUser } from '@redhat-cloud-services/types';
import type { LibJWT } from '../../src/auth';
import { RemoteModule } from '../../src/@types/types';
import { BLOCK_CLEAR_GATEWAY_ERROR } from '../../src/utils/common';
import { initializeVisibilityFunctions } from '../../src/utils/VisibilitySingleton';
import ChromeAuthContext, { ChromeAuthContextValue } from '../../src/auth/ChromeAuthContext';

const testUser: ChromeUser = testUserJson as unknown as ChromeUser;

const chromeUser: ChromeUser = testUser as unknown as ChromeUser;

const chromeAuthContextValue: ChromeAuthContextValue = {
doOffline: () => Promise.resolve(),
getOfflineToken: () => Promise.resolve({} as any),

Check warning on line 28 in cypress/component/GatewayErrors.cy.tsx

View workflow job for this annotation

GitHub Actions / lint

Unexpected any. Specify a different type
getToken: () => Promise.resolve(''),
getUser: () => Promise.resolve(chromeUser),
login: () => Promise.resolve(),
loginAllTabs: () => Promise.resolve(),
logout: () => Promise.resolve(),
logoutAllTabs: () => Promise.resolve(),
ready: true,
token: '',
tokenExpires: 0,
user: chromeUser,
};

function createEnv(code?: string) {
if (!code) {
throw 'Enviroment must have identifier';
Expand All @@ -30,7 +46,7 @@ function createEnv(code?: string) {
// initialize user object for feature flags
reduxStore.dispatch(userLogIn(testUser));
// initializes request interceptors
qe.init(reduxStore);
qe.init(reduxStore, 'foo');
reduxStore.dispatch(
loadModulesSchema({
[code]: {
Expand All @@ -47,19 +63,9 @@ function createEnv(code?: string) {
);

const Component = () => (
<LibtJWTContext.Provider
value={
{
initPromise: Promise.resolve(),
jwt: {
getUserInfo: () => Promise.resolve(),
getEncodedToken: () => '',
},
} as LibJWT
}
>
<MemoryRouter initialEntries={[`/${code}`]}>
<Provider store={reduxStore}>
<MemoryRouter initialEntries={[`/${code}`]}>
<Provider store={reduxStore}>
<ChromeAuthContext.Provider value={chromeAuthContextValue}>
<IntlProvider locale="en">
<FeatureFlagsProvider>
<ScalprumRoot
Expand All @@ -85,9 +91,9 @@ function createEnv(code?: string) {
/>
</FeatureFlagsProvider>
</IntlProvider>
</Provider>
</MemoryRouter>
</LibtJWTContext.Provider>
</ChromeAuthContext.Provider>
</Provider>
</MemoryRouter>
);
return Component;
}
Expand Down
Loading

0 comments on commit 7ed6355

Please sign in to comment.