PromucFlow_constructor/app/client/jest.config.js
Ilia 9e2fb95aee
feat: init AI chat widget (#36610)
## Description


Fixes #36541

> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags=""

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!WARNING]
> Tests have not run on the HEAD
c4a6e25abc716cc6a54e612a3800ca95079ba8a0 yet
> <hr>Thu, 03 Oct 2024 11:06:19 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit


- **New Features**
- Introduced the WDS AI Chat Widget for interactive chat experiences
using OpenAI.
	- Added the AIChat component for enhanced chat functionality.
- Expanded the collection of available widgets with the new WDS AI Chat
Widget.
- Introduced the ThreadMessage component for structured message
rendering in the chat interface.
- Added UserAvatar and ChatTitle components for improved user
interaction and display.
- Introduced new icons and thumbnails for AI Chat and Date Picker to
enhance visual representation.

- **Bug Fixes**
- Resolved issues related to widget integration within the existing
framework.

- **Documentation**
	- Updated configuration files to enhance modularity and organization.
	- Expanded documentation to include new icons and thumbnails.

- **Chores**
- Added the OpenAI, React Markdown, and React Syntax Highlighter
dependencies for improved functionality.
	- Introduced a new type declaration dependency for better type support.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Valera Melnikov <valera@appsmith.com>
Co-authored-by: saiprabhu-dandanayak <saiprabhu.dandanayak@zemosolabs.com>
Co-authored-by: Rudraprasad Das <rudra@appsmith.com>
Co-authored-by: Abhishek Pandey <66054987+a6hishekpandey@users.noreply.github.com>
Co-authored-by: NandanAnantharamu <67676905+NandanAnantharamu@users.noreply.github.com>
Co-authored-by: “NandanAnantharamu” <“nandan@thinkify.io”>
Co-authored-by: Anagh Hegde <anagh.hv@gmail.com>
Co-authored-by: Abhijeet <abhi.nagarnaik@gmail.com>
Co-authored-by: Abhijeet <41686026+abhvsn@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: albinAppsmith <87797149+albinAppsmith@users.noreply.github.com>
Co-authored-by: sneha122 <sneha@appsmith.com>
Co-authored-by: “sneha122” <“sneha@appsmith.com”>
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
Co-authored-by: Nidhi Nair <nidhi@appsmith.com>
Co-authored-by: Nilansh Bansal <nilansh@appsmith.com>
Co-authored-by: Rishabh Rathod <rishabh.rathod@appsmith.com>
Co-authored-by: vadim <vadim@appsmith.com>
2024-10-03 14:26:18 +03:00

125 lines
5.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function parseConfig() {
return "";
}
const LOG_LEVELS = ["debug", "error"];
const CONFIG_LOG_LEVEL_INDEX = 1;
module.exports = {
setupFiles: ["jest-canvas-mock", "<rootDir>/test/__mocks__/reactMarkdown.tsx"],
roots: ["<rootDir>/src"],
transform: {
"^.+\\.(png|js|ts|tsx)$": "ts-jest",
},
testEnvironment: "jsdom",
testTimeout: 9000,
setupFilesAfterEnv: ["<rootDir>/test/setup.ts"],
testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.(tsx|ts|js)?$",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node", "css"],
moduleDirectories: ["node_modules", "src", "test"],
transformIgnorePatterns: [
"<rootDir>/node_modules/(?!codemirror|konva|react-dnd|dnd-core|@babel|(@blueprintjs)|@github|lodash-es|@draft-js-plugins|react-documents|linkedom|assert-never|axios)",
],
moduleNameMapper: {
"\\.(css|less)$": "<rootDir>/test/__mocks__/styleMock.js",
"\\.svg$": "<rootDir>/test/__mocks__/svgMock.js",
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|txt)$":
"<rootDir>/test/__mocks__/fileMock.js",
"^worker-loader!": "<rootDir>/test/__mocks__/workerMock.js",
"^!!raw-loader!": "<rootDir>/test/__mocks__/derivedMock.js",
"test/(.*)": "<rootDir>/test/$1",
"@appsmith/ads-old": "<rootDir>/node_modules/@appsmith/ads-old",
"@design-system/widgets-old":
"<rootDir>/node_modules/@design-system/widgets-old",
"^proxy-memoize$": "<rootDir>/node_modules/proxy-memoize/dist/wrapper.cjs",
// @blueprintjs packages need to be resolved to the `esnext` directory. The default `esm` directory
// contains sources that are transpiled to ES5. As Jest does not transpile our sources to ES5,
// this results in mixing ES6 and ES5 code and causes errors like:
// Class constructor GlobalHotKeys cannot be invoked without 'new'
// Note: this isnt issue in the live app because we transpile *everything* down to ES5 there.
"^@blueprintjs/core$":
"<rootDir>/node_modules/@blueprintjs/core/lib/esnext",
"^@blueprintjs/datetime$":
"<rootDir>/node_modules/@blueprintjs/datetime/lib/esnext",
"^@blueprintjs/icons$":
"<rootDir>/node_modules/@blueprintjs/icons/lib/esnext",
"^@blueprintjs/popover2$":
"<rootDir>/node_modules/@blueprintjs/popover2/lib/esnext",
"^@blueprintjs/select$":
"<rootDir>/node_modules/@blueprintjs/select/lib/esnext",
"@appsmith/ads": "<rootDir>/node_modules/@appsmith/ads",
"^canvas$": "jest-canvas-mock",
},
globals: {
"ts-jest": {
isolatedModules: true,
diagnostics: {
ignoreCodes: [1343],
},
astTransformers: {
before: [
{
path: "node_modules/ts-jest-mock-import-meta",
options: { metaObjectReplacement: { url: "https://www.url.com" } },
},
],
},
},
APPSMITH_FEATURE_CONFIGS: {
sentry: {
dsn: parseConfig("__APPSMITH_SENTRY_DSN__"),
release: parseConfig("__APPSMITH_SENTRY_RELEASE__"),
environment: parseConfig("__APPSMITH_SENTRY_ENVIRONMENT__"),
},
smartLook: {
id: parseConfig("__APPSMITH_SMART_LOOK_ID__"),
},
segment: {
apiKey: parseConfig("__APPSMITH_SEGMENT_KEY__"),
ceKey: parseConfig("__APPSMITH_SEGMENT_CE_KEY__"),
},
newRelic: {
enableNewRelic: parseConfig("__APPSMITH_NEW_RELIC_ACCOUNT_ENABLE__"),
accountId: parseConfig("__APPSMITH_NEW_RELIC_ACCOUNT_ID__"),
applicationId: parseConfig("__APPSMITH_NEW_RELIC_APPLICATION_ID__"),
browserAgentlicenseKey: parseConfig(
"__APPSMITH_NEW_RELIC_BROWSER_AGENT_LICENSE_KEY__",
),
browserAgentEndpoint: parseConfig(
"__APPSMITH_NEW_RELIC_BROWSER_AGENT_ENDPOINT__",
),
otlpLicenseKey: parseConfig("__APPSMITH_NEW_RELIC_OTLP_LICENSE_KEY__"),
otlpServiceName: parseConfig(
"__APPSMITH_NEW_RELIC_OTEL_SERVICE_NAME__",
),
otlpEndpoint: parseConfig(
"__APPSMITH_NEW_RELIC_OTEL_EXPORTER_OTLP_ENDPOINT__",
),
},
fusioncharts: {
licenseKey: parseConfig("__APPSMITH_FUSIONCHARTS_LICENSE_KEY__"),
},
enableMixpanel: parseConfig("__APPSMITH_SEGMENT_KEY__"),
algolia: {
apiId: parseConfig("__APPSMITH_ALGOLIA_API_ID__"),
apiKey: parseConfig("__APPSMITH_ALGOLIA_API_KEY__"),
indexName: parseConfig("__APPSMITH_ALGOLIA_SEARCH_INDEX_NAME__"),
},
logLevel:
CONFIG_LOG_LEVEL_INDEX > -1
? LOG_LEVELS[CONFIG_LOG_LEVEL_INDEX]
: LOG_LEVELS[1],
cloudHosting: "CLOUD_HOSTING",
appVersion: {
id: parseConfig("__APPSMITH_VERSION_ID__"),
sha: parseConfig("__APPSMITH_VERSION_SHA__"),
releaseDate: parseConfig("__APPSMITH_VERSION_RELEASE_DATE__"),
},
intercomAppID: "APP_ID",
mailEnabled: parseConfig("__APPSMITH_MAIL_ENABLED__"),
disableIframeWidgetSandbox: parseConfig(
"__APPSMITH_DISABLE_IFRAME_WIDGET_SANDBOX__",
),
},
},
};