Fix daily e2e tests GitHub Actions cron job (#3923)
# What this PR does - fixes our e2e tests to work on all tested versions - updates Grafana versions that we run the daily e2e tests against (bump `10.0.2` to `10.0.11` + add `10.1.7` tags) - updates the Slack status message format + change channel from #irm-amixr-flux to #gops-oncall-dev <img width="1479" alt="Screenshot 2024-02-24 at 08 30 06" src="https://github.com/grafana/oncall/assets/9406895/f5cb91f8-12ce-4978-9c37-c72ee8a01e4b"> ## NOTE It looks like we have some e2e tests that fail under the following circumstances: - on Firefox or WebKit - on Grafana 10.2 and 10.3 (once we fix these, we should [update our e2e tests that run on all PR builds](https://github.com/grafana/oncall/blob/dev/.github/workflows/linting-and-tests.yml#L325) to run against `10.3.3` which is the current latest major version available) ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not required)
This commit is contained in:
parent
f8e4360c16
commit
9c0bc26680
17 changed files with 245 additions and 228 deletions
|
|
@ -386,5 +386,3 @@ name: cloud_access_policy_token
|
|||
---
|
||||
kind: signature
|
||||
hmac: 198b7c7d2c94fc5698b22a722e7748181990207755cf1778b2290137e262518c
|
||||
|
||||
...
|
||||
|
|
|
|||
24
.github/workflows/daily-e2e-tests.yml
vendored
24
.github/workflows/daily-e2e-tests.yml
vendored
|
|
@ -21,18 +21,21 @@ jobs:
|
|||
- 9.3.16
|
||||
- 9.4.13
|
||||
- 9.5.7
|
||||
- 10.0.2
|
||||
|
||||
# NOTE: don't run on > 10.0.3 until this issue is fixed. It appears that something was changed
|
||||
# with the plugin-proxy that caused it to start throwing HTTP 502s from time to time
|
||||
# https://raintank-corp.slack.com/archives/C01C4K8DETW/p1692279329797149
|
||||
- 10.0.11
|
||||
- 10.1.7
|
||||
# TODO: fix issues with running e2e tests against Grafana v10.2.x and v10.3.x
|
||||
# - 10.2.4
|
||||
# - latest
|
||||
fail-fast: false
|
||||
uses: ./.github/workflows/e2e-tests.yml
|
||||
with:
|
||||
grafana-image-tag: ${{ matrix.grafana-image-tag }}
|
||||
run-expensive-tests: true
|
||||
browsers: "chromium firefox webkit"
|
||||
# TODO: fix issues with some tests on firefox and webkit
|
||||
# example CI build with firefox/webkit failing tests
|
||||
# https://github.com/grafana/oncall/actions/runs/8022194346/job/21915964672#step:19:905
|
||||
# browsers: "chromium firefox webkit"
|
||||
browsers: "chromium"
|
||||
secrets: inherit
|
||||
|
||||
post-status-to-slack:
|
||||
|
|
@ -40,19 +43,22 @@ jobs:
|
|||
needs: end-to-end-tests
|
||||
if: always()
|
||||
steps:
|
||||
# Useful references
|
||||
# https://stackoverflow.com/questions/59073850/github-actions-get-url-of-test-build
|
||||
# https://github.com/orgs/community/discussions/26822#discussioncomment-3305794
|
||||
#
|
||||
- uses: slackapi/slack-github-action@v1.24.0
|
||||
with:
|
||||
channel-id: irm-amixr-flux
|
||||
channel-id: gops-oncall-dev
|
||||
# yamllint disable rule:line-length
|
||||
payload: |
|
||||
{
|
||||
"text": "Daily e2e tests build result: ${{ job.status }}\n${{ github.event.pull_request.html_url || github.event.head_commit.url }}",
|
||||
"blocks": [
|
||||
{
|
||||
"type": "section",
|
||||
"text": {
|
||||
"type": "mrkdwn",
|
||||
"text": "Daily e2e tests build result: ${{ job.status }}\n${{ github.event.pull_request.html_url || github.event.head_commit.url }}"
|
||||
"text": "Daily e2e tests build result: ${{ needs.end-to-end-tests.result == 'success' && ':check:' || ':alert:' }}\n${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
23
.github/workflows/e2e-tests.yml
vendored
23
.github/workflows/e2e-tests.yml
vendored
|
|
@ -37,6 +37,15 @@ jobs:
|
|||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# TODO: re-enable this when we get the docker build build-context caching working.. see other TODO comment below
|
||||
# - uses: actions/setup-python@v4
|
||||
# with:
|
||||
# python-version: "3.11.4"
|
||||
# cache: "pip"
|
||||
# cache-dependency-path: |
|
||||
# engine/requirements.txt
|
||||
# engine/requirements-dev.txt
|
||||
|
||||
- name: Collect Workflow Telemetry
|
||||
uses: runforesight/workflow-telemetry-action@v1
|
||||
with:
|
||||
|
|
@ -90,6 +99,16 @@ jobs:
|
|||
push: false
|
||||
tags: oncall/engine:latest
|
||||
outputs: type=docker,dest=/tmp/oncall-engine.tar
|
||||
# TODO: figure out how to get this to work.. this will substantially speed up building our docker image here
|
||||
# because right now most time is spent building wheels for python dependencies
|
||||
# (even though they rarely change).. this portion "should" work however I haven't yet figured out how to
|
||||
# get the cache bind mount in engine/Dockerfile to work optionally (ie. when we don't specify
|
||||
# the --build-context flag to docker build.. otherwise it fails if pip_cache is not available)
|
||||
#
|
||||
# references
|
||||
# https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/reference.md#run---mounttypecache
|
||||
# https://stackoverflow.com/a/71846527
|
||||
# build-contexts: pip_cache=/home/runner/.cache/pip
|
||||
|
||||
- name: Load engine Docker image on the nodes of the cluster
|
||||
run: kind load image-archive --name=chart-testing /tmp/oncall-engine.tar
|
||||
|
|
@ -119,7 +138,7 @@ jobs:
|
|||
uses: actions/cache@v3
|
||||
with:
|
||||
path: "~/.cache/ms-playwright"
|
||||
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}-chromium-firefox-webkit
|
||||
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}-${{ inputs.browsers }}
|
||||
|
||||
# For the next two steps, use the binary directly from node_modules/.bin as opposed to npx playwright
|
||||
# due to this bug (https://github.com/microsoft/playwright/issues/13188)
|
||||
|
|
@ -206,6 +225,6 @@ jobs:
|
|||
- uses: actions/upload-artifact@v3
|
||||
if: failure()
|
||||
with:
|
||||
name: playwright-report
|
||||
name: playwright-report-${{ inputs.grafana-image-tag }}
|
||||
path: ./grafana-plugin/playwright-report/
|
||||
retention-days: 30
|
||||
|
|
|
|||
7
.github/workflows/linting-and-tests.yml
vendored
7
.github/workflows/linting-and-tests.yml
vendored
|
|
@ -319,10 +319,9 @@ jobs:
|
|||
name: End to end tests
|
||||
uses: ./.github/workflows/e2e-tests.yml
|
||||
with:
|
||||
# NOTE: don't run on > 10.0.3 until this issue is fixed. It appears that something was changed
|
||||
# with the plugin-proxy that caused it to start throwing HTTP 502s from time to time
|
||||
# https://raintank-corp.slack.com/archives/C01C4K8DETW/p1692279329797149
|
||||
grafana-image-tag: 10.0.2
|
||||
# TODO: fix issues with running e2e tests against Grafana v10.2.x and v10.3.x
|
||||
grafana-image-tag: 10.1.7
|
||||
# grafana-image-tag: 10.3.3
|
||||
run-expensive-tests: false
|
||||
browsers: "chromium"
|
||||
secrets: inherit
|
||||
|
|
|
|||
|
|
@ -59,9 +59,6 @@ services:
|
|||
volumes:
|
||||
- ./grafana-plugin:/etc/app
|
||||
- node_modules_dev:/etc/app/node_modules
|
||||
# https://stackoverflow.com/a/60456034
|
||||
# see the explaination above that uses the $ENTERPRISE_ENGINE env var
|
||||
- ${ENTERPRISE_FRONTEND:-/dev/null}:${ENTERPRISE_FRONTEND_VOLUME_MOUNT_DEST_DIR:-/tmp/empty:ro}
|
||||
profiles:
|
||||
- oncall_ui
|
||||
|
||||
|
|
|
|||
|
|
@ -13,10 +13,14 @@ RUN apk add bash \
|
|||
mariadb-connector-c-dev \
|
||||
libffi-dev \
|
||||
git \
|
||||
postgresql-dev
|
||||
postgresql-dev
|
||||
|
||||
WORKDIR /etc/app
|
||||
COPY ./requirements.txt ./
|
||||
|
||||
# TODO: figure out how to get this to work.. see comment in .github/workflows/e2e-tests.yml
|
||||
# https://stackoverflow.com/a/71846527
|
||||
# RUN --mount=type=cache,target=/root/.cache/pip,from=pip_cache pip install -r requirements.txt
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
# we intentionally have two COPY commands, this is to have the requirements.txt in a separate build step
|
||||
|
|
@ -47,9 +51,15 @@ ENV prometheus_multiproc_dir "/tmp/prometheus_django_metrics"
|
|||
|
||||
FROM base AS dev
|
||||
RUN apk add sqlite mysql-client postgresql-client
|
||||
# TODO: figure out how to get this to work.. see comment in .github/workflows/e2e-tests.yml
|
||||
# https://stackoverflow.com/a/71846527
|
||||
# RUN --mount=type=cache,target=/root/.cache/pip,from=pip_cache pip install -r requirements-dev.txt
|
||||
RUN pip install -r requirements-dev.txt
|
||||
|
||||
FROM dev AS dev-enterprise
|
||||
# TODO: figure out how to get this to work.. see comment in .github/workflows/e2e-tests.yml
|
||||
# https://stackoverflow.com/a/71846527
|
||||
# RUN --mount=type=cache,target=/root/.cache/pip,from=pip_cache pip install -r requirements-enterprise-docker.txt
|
||||
RUN pip install -r requirements-enterprise-docker.txt
|
||||
|
||||
FROM base AS prod
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { test as base, Browser, Page, TestInfo } from '@playwright/test';
|
||||
import { test as base, Browser, Fixtures, Page, TestInfo } from '@playwright/test';
|
||||
|
||||
import { VIEWER_USER_STORAGE_STATE, EDITOR_USER_STORAGE_STATE, ADMIN_USER_STORAGE_STATE } from '../playwright.config';
|
||||
|
||||
|
|
@ -7,8 +7,6 @@ import { GRAFANA_ADMIN_USERNAME, GRAFANA_EDITOR_USERNAME, GRAFANA_VIEWER_USERNAM
|
|||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
|
||||
|
||||
|
||||
export class BaseRolePage {
|
||||
page: Page;
|
||||
userName: string;
|
||||
|
|
@ -32,11 +30,14 @@ class AdminRolePage extends BaseRolePage {
|
|||
userName = GRAFANA_ADMIN_USERNAME;
|
||||
}
|
||||
|
||||
type Fixtures = {
|
||||
interface TestFixtures extends Fixtures {
|
||||
// currentGrafanaVersion: string;
|
||||
viewerRolePage: ViewerRolePage;
|
||||
editorRolePage: EditorRolePage;
|
||||
adminRolePage: AdminRolePage;
|
||||
};
|
||||
}
|
||||
|
||||
interface WorkerFixtures extends Fixtures {}
|
||||
|
||||
/**
|
||||
* NOTE: currently videos are not generated automatically because of how we generate a browserContext within our
|
||||
|
|
@ -77,11 +78,16 @@ const _recordTestVideo = async (
|
|||
};
|
||||
|
||||
export * from '@playwright/test';
|
||||
export const test = base.extend<Fixtures>({
|
||||
export const test = base.extend<TestFixtures, WorkerFixtures>({
|
||||
viewerRolePage: ({ browser }, use, testInfo) =>
|
||||
_recordTestVideo(browser, use, testInfo, VIEWER_USER_STORAGE_STATE, ViewerRolePage),
|
||||
editorRolePage: async ({ browser }, use, testInfo) =>
|
||||
_recordTestVideo(browser, use, testInfo, EDITOR_USER_STORAGE_STATE, EditorRolePage),
|
||||
adminRolePage: async ({ browser }, use, testInfo) =>
|
||||
_recordTestVideo(browser, use, testInfo, ADMIN_USER_STORAGE_STATE, AdminRolePage),
|
||||
/**
|
||||
* add back this fixture once this bug is fixed
|
||||
* https://github.com/microsoft/playwright/issues/29608
|
||||
*/
|
||||
// currentGrafanaVersion: ({}, use) => use('9.0.0'),
|
||||
});
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import { getOnCallApiUrl } from 'utils/consts';
|
|||
|
||||
import { VIEWER_USER_STORAGE_STATE, EDITOR_USER_STORAGE_STATE, ADMIN_USER_STORAGE_STATE } from '../playwright.config';
|
||||
|
||||
import GrafanaAPIClient from './utils/clients/grafana';
|
||||
import grafanaApiClient from './utils/clients/grafana';
|
||||
import {
|
||||
GRAFANA_ADMIN_PASSWORD,
|
||||
GRAFANA_ADMIN_USERNAME,
|
||||
|
|
@ -26,8 +26,6 @@ import {
|
|||
import { clickButton, getInputByName } from './utils/forms';
|
||||
import { goToGrafanaPage } from './utils/navigation';
|
||||
|
||||
const grafanaApiClient = new GrafanaAPIClient(GRAFANA_ADMIN_USERNAME, GRAFANA_ADMIN_PASSWORD);
|
||||
|
||||
enum OrgRole {
|
||||
None = 'None',
|
||||
Viewer = 'Viewer',
|
||||
|
|
@ -154,5 +152,18 @@ setup('Configure Grafana OnCall plugin', async ({ request }, { config }) => {
|
|||
await configureOnCallPlugin(adminPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* determine the current Grafana version of the stack in question and set it such that it can be used in the tests
|
||||
* to conditionally skip certain tests.
|
||||
*
|
||||
* According to the Playwright docs, the best way to set config like this on the fly, is to set values
|
||||
* on process.env https://playwright.dev/docs/test-global-setup-teardown#example
|
||||
*
|
||||
* TODO: when this bug is fixed in playwright https://github.com/microsoft/playwright/issues/29608
|
||||
* move this to the currentGrafanaVersion fixture
|
||||
*/
|
||||
const currentGrafanaVersion = await grafanaApiClient.getGrafanaVersion(adminAuthedRequest);
|
||||
process.env.CURRENT_GRAFANA_VERSION = currentGrafanaVersion;
|
||||
|
||||
await adminBrowserContext.close();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import semver from 'semver';
|
||||
import { test, expect } from '../fixtures';
|
||||
import { resolveFiringAlert } from '../utils/alertGroup';
|
||||
import { createEscalationChain, EscalationStep } from '../utils/escalationChain';
|
||||
|
|
@ -6,6 +7,18 @@ import { createIntegrationAndSendDemoAlert } from '../utils/integrations';
|
|||
import { goToGrafanaPage, goToOnCallPage } from '../utils/navigation';
|
||||
import { createOnCallSchedule } from '../utils/schedule';
|
||||
|
||||
/**
|
||||
* Insights is dependent on Scenes which were only added in Grafana 10.0.0
|
||||
* https://grafana.com/docs/grafana/latest/whatsnew/whats-new-in-v10-0/#scenes
|
||||
* TODO: remove the process.env.CURRENT_GRAFANA_VERSION portion
|
||||
* and use the currentGrafanaVersion fixture once this bugged is patched in playwright
|
||||
* https://github.com/microsoft/playwright/issues/29608
|
||||
*/
|
||||
test.skip(
|
||||
() => semver.lt(process.env.CURRENT_GRAFANA_VERSION, '10.0.0'),
|
||||
'Insights is only available in Grafana 10.0.0 and above'
|
||||
);
|
||||
|
||||
test.describe('Insights', () => {
|
||||
test.beforeAll(async ({ adminRolePage: { page, userName } }) => {
|
||||
const DATASOURCE_NAME = 'OnCall Prometheus';
|
||||
|
|
|
|||
|
|
@ -7,8 +7,7 @@ const HEARTBEAT_SETTINGS_FORM_TEST_ID = 'heartbeat-settings-form';
|
|||
|
||||
test.describe("updating an integration's heartbeat interval works", async () => {
|
||||
const _openHeartbeatSettingsForm = async (page: Page) => {
|
||||
await page.getByTestId('integration-settings-context-menu-wrapper').getByRole('img').click();
|
||||
await page.waitForTimeout(1000);
|
||||
await page.getByTestId('integration-settings-context-menu-wrapper').click();
|
||||
await page.getByTestId('integration-heartbeat-settings').click();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -81,11 +81,7 @@ test.describe('maintenance mode works', () => {
|
|||
await page.getByText('Stop Maintenance').click();
|
||||
|
||||
// in the modal popup, confirm that we want to stop it
|
||||
await clickButton({
|
||||
page,
|
||||
buttonText: 'Stop',
|
||||
startingLocator: page.getByRole('dialog'),
|
||||
});
|
||||
await page.locator('button >> text=Stop').click();
|
||||
|
||||
await getRemainingTimeTooltip(page).waitFor({ state: 'hidden' });
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { OrgRole } from '@grafana/data';
|
||||
import { expect, APIRequestContext } from '@playwright/test';
|
||||
|
||||
import { BASE_URL } from '../constants';
|
||||
import { BASE_URL, GRAFANA_ADMIN_PASSWORD, GRAFANA_ADMIN_USERNAME } from '../constants';
|
||||
|
||||
type UsersLookupResponse = {
|
||||
id: number;
|
||||
|
|
@ -11,6 +11,12 @@ type CreateUserResponse = {
|
|||
id: number;
|
||||
};
|
||||
|
||||
type GetSettingsResponse = {
|
||||
buildInfo: {
|
||||
version: string;
|
||||
};
|
||||
};
|
||||
|
||||
class GrafanaApiException extends Error {
|
||||
constructor(message: string) {
|
||||
super(message);
|
||||
|
|
@ -18,7 +24,7 @@ class GrafanaApiException extends Error {
|
|||
}
|
||||
}
|
||||
|
||||
export default class GrafanaAPIClient {
|
||||
class GrafanaAPIClient {
|
||||
userName: string;
|
||||
password: string;
|
||||
|
||||
|
|
@ -113,4 +119,16 @@ export default class GrafanaAPIClient {
|
|||
});
|
||||
expect(res.ok()).toBeTruthy();
|
||||
};
|
||||
|
||||
// https://grafana.com/docs/grafana/latest/developers/http_api/other/#get-settings
|
||||
getGrafanaVersion = async (request: APIRequestContext): Promise<string> => {
|
||||
const res = await request.get(`${BASE_URL}/api/frontend/settings`);
|
||||
expect(res.ok()).toBeTruthy();
|
||||
|
||||
const data: GetSettingsResponse = await res.json();
|
||||
return data.buildInfo.version;
|
||||
};
|
||||
}
|
||||
|
||||
const grafanaAPIClient = new GrafanaAPIClient(GRAFANA_ADMIN_USERNAME, GRAFANA_ADMIN_PASSWORD);
|
||||
export default grafanaAPIClient;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,17 @@
|
|||
import { Page } from '@playwright/test';
|
||||
|
||||
// close the currently opened modal
|
||||
/**
|
||||
* in Grafana v9 the aria-label is "Close dialog"
|
||||
* in Grafana v10.0 the aria-label is "Close dialogue"
|
||||
* in Grafana v10.1 the aria-label is "Close"
|
||||
* 🙄
|
||||
*
|
||||
* https://playwright.dev/docs/other-locators#css-elements-matching-one-of-the-conditions
|
||||
*/
|
||||
const POSSIBLE_CLOSE_MODAL_BUTTON_DIALOGUE_ARIA_LABELS = ['Close dialog', 'Close dialogue', 'Close'];
|
||||
const CLOSE_MODAL_BUTTON_ARIA_LABEL_SELECTOR = POSSIBLE_CLOSE_MODAL_BUTTON_DIALOGUE_ARIA_LABELS.map(
|
||||
(ariaLabel) => `button[aria-label="${ariaLabel}"]`
|
||||
).join(', ');
|
||||
|
||||
export const closeModal = async (page: Page): Promise<void> =>
|
||||
(await page.waitForSelector('button[aria-label="Close dialogue"]')).click();
|
||||
(await page.waitForSelector(CLOSE_MODAL_BUTTON_ARIA_LABEL_SELECTOR))?.click();
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ type NotifyBy = 'SMS' | 'Phone call';
|
|||
const openUserSettingsModal = async (page: Page): Promise<void> => {
|
||||
await goToOnCallPage(page, 'users');
|
||||
await clickButton({ page, buttonText: 'View my profile' });
|
||||
await page.locator('text=To edit user details such as Username, email, and role').waitFor({ state: 'visible' });
|
||||
};
|
||||
|
||||
const getForgetPhoneNumberButton = (page: Page): Locator => page.locator('button >> text=Forget Phone Number');
|
||||
|
|
@ -55,11 +54,9 @@ export const verifyUserPhoneNumber = async (page: Page): Promise<void> => {
|
|||
* and then gets the notification type dropdown
|
||||
*/
|
||||
const getFirstDefaultNotificationSettingTypeDropdown = async (page: Page): Promise<Locator> => {
|
||||
const defaultNotificationSettingsList = page.locator('ul[class*="Timeline-module"] >> nth=0');
|
||||
await defaultNotificationSettingsList.waitFor({ state: 'visible' });
|
||||
|
||||
const firstDefaultNotificationSettingRow = defaultNotificationSettingsList.locator('li >> nth=0');
|
||||
await firstDefaultNotificationSettingRow.waitFor({ state: 'visible' });
|
||||
const firstDefaultNotificationSettingRow = page
|
||||
.getByTestId('default-personal-notification-settings')
|
||||
.locator('li >> nth=0');
|
||||
|
||||
// get the notification type dropdown specifically
|
||||
return firstDefaultNotificationSettingRow.locator('div[class*="input-wrapper"] >> nth=1');
|
||||
|
|
@ -69,18 +66,6 @@ export const configureUserNotificationSettings = async (page: Page, notifyBy: No
|
|||
// open the user settings modal
|
||||
await openUserSettingsModal(page);
|
||||
|
||||
/**
|
||||
* see if we already have a default notification setting
|
||||
* if we don't click the Add Notification Step button and add one
|
||||
* otherwise update the existing one
|
||||
*/
|
||||
const defaultNotificationsAddNotificationStepButton = page.locator(
|
||||
'div[class*="PersonalNotificationSettings"] >> nth=0 text=Add Notification Step'
|
||||
);
|
||||
if (await defaultNotificationsAddNotificationStepButton.isVisible()) {
|
||||
await defaultNotificationsAddNotificationStepButton.click();
|
||||
}
|
||||
|
||||
// select our notification type
|
||||
const firstDefaultNotificationTypeDropdopdown = await getFirstDefaultNotificationSettingTypeDropdown(page);
|
||||
await selectDropdownValue({
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
"@grafana/eslint-config": "^6.0.0",
|
||||
"@grafana/tsconfig": "^1.2.0-rc1",
|
||||
"@jest/globals": "^27.5.1",
|
||||
"@playwright/test": "^1.39.0",
|
||||
"@playwright/test": "^1.41.0",
|
||||
"@swc/core": "^1.3.90",
|
||||
"@swc/helpers": "^0.5.0",
|
||||
"@swc/jest": "^0.2.26",
|
||||
|
|
@ -102,6 +102,7 @@
|
|||
"replace-in-file-webpack-plugin": "^1.0.6",
|
||||
"sass": "1.63.2",
|
||||
"sass-loader": "13.3.1",
|
||||
"semver": "^7.6.0",
|
||||
"style-loader": "3.3.3",
|
||||
"stylelint-config-prettier": "^9.0.3",
|
||||
"stylelint-prettier": "^2.0.0",
|
||||
|
|
|
|||
|
|
@ -17,8 +17,12 @@ export const NotificationSettingsTab = (props: { id: User['pk'] }) => {
|
|||
|
||||
return (
|
||||
<div>
|
||||
<PersonalNotificationSettings userPk={id} isImportant={false} />
|
||||
<PersonalNotificationSettings userPk={id} isImportant={true} />
|
||||
<div data-testid="default-personal-notification-settings">
|
||||
<PersonalNotificationSettings userPk={id} isImportant={false} />
|
||||
</div>
|
||||
<div data-testid="important-personal-notification-settings">
|
||||
<PersonalNotificationSettings userPk={id} isImportant={true} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1650,13 +1650,6 @@
|
|||
"@types/node" "*"
|
||||
jest-mock "^29.7.0"
|
||||
|
||||
"@jest/expect-utils@^29.3.1":
|
||||
version "29.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6"
|
||||
integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==
|
||||
dependencies:
|
||||
jest-get-type "^29.2.0"
|
||||
|
||||
"@jest/expect-utils@^29.7.0":
|
||||
version "29.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
|
||||
|
|
@ -2236,12 +2229,12 @@
|
|||
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
|
||||
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
|
||||
|
||||
"@playwright/test@^1.39.0":
|
||||
version "1.39.0"
|
||||
resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.39.0.tgz#d10ba8e38e44104499e25001945f07faa9fa91cd"
|
||||
integrity sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==
|
||||
"@playwright/test@^1.41.0":
|
||||
version "1.41.2"
|
||||
resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.41.2.tgz#bd9db40177f8fd442e16e14e0389d23751cdfc54"
|
||||
integrity sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==
|
||||
dependencies:
|
||||
playwright "1.39.0"
|
||||
playwright "1.41.2"
|
||||
|
||||
"@polka/url@^1.0.0-next.20":
|
||||
version "1.0.0-next.21"
|
||||
|
|
@ -2662,79 +2655,79 @@
|
|||
remark "^13.0.0"
|
||||
unist-util-find-all-after "^3.0.2"
|
||||
|
||||
"@swc/core-darwin-arm64@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.107.tgz#abac4c19816751de1dcbaab456710ca55e580782"
|
||||
integrity sha512-47tD/5vSXWxPd0j/ZllyQUg4bqalbQTsmqSw0J4dDdS82MWqCAwUErUrAZPRjBkjNQ6Kmrf5rpCWaGTtPw+ngw==
|
||||
"@swc/core-darwin-arm64@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.2.tgz#3b5677c5b9c5a7a91d953b96cd603c94064e2835"
|
||||
integrity sha512-1uSdAn1MRK5C1m/TvLZ2RDvr0zLvochgrZ2xL+lRzugLlCTlSA+Q4TWtrZaOz+vnnFVliCpw7c7qu0JouhgQIw==
|
||||
|
||||
"@swc/core-darwin-x64@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.107.tgz#4c0df233ebf293429cd2f10224d6a870a5cc019e"
|
||||
integrity sha512-hwiLJ2ulNkBGAh1m1eTfeY1417OAYbRGcb/iGsJ+LuVLvKAhU/itzsl535CvcwAlt2LayeCFfcI8gdeOLeZa9A==
|
||||
"@swc/core-darwin-x64@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.4.2.tgz#bbc8bbf420389b12541151255a50f319cc17ef96"
|
||||
integrity sha512-TYD28+dCQKeuxxcy7gLJUCFLqrwDZnHtC2z7cdeGfZpbI2mbfppfTf2wUPzqZk3gEC96zHd4Yr37V3Tvzar+lQ==
|
||||
|
||||
"@swc/core-linux-arm-gnueabihf@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.107.tgz#81004cca4c7554007ea5ac51e276147e958e3e9f"
|
||||
integrity sha512-I2wzcC0KXqh0OwymCmYwNRgZ9nxX7DWnOOStJXV3pS0uB83TXAkmqd7wvMBuIl9qu4Hfomi9aDM7IlEEn9tumQ==
|
||||
"@swc/core-linux-arm-gnueabihf@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.2.tgz#aa9a18f130820717df08c9dd882043fc47e8d35a"
|
||||
integrity sha512-Eyqipf7ZPGj0vplKHo8JUOoU1un2sg5PjJMpEesX0k+6HKE2T8pdyeyXODN0YTFqzndSa/J43EEPXm+rHAsLFQ==
|
||||
|
||||
"@swc/core-linux-arm64-gnu@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.107.tgz#c01d75df662067fb7805bfdfa66c2f17f2b3185f"
|
||||
integrity sha512-HWgnn7JORYlOYnGsdunpSF8A+BCZKPLzLtEUA27/M/ZuANcMZabKL9Zurt7XQXq888uJFAt98Gy+59PU90aHKg==
|
||||
"@swc/core-linux-arm64-gnu@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.2.tgz#5ef1de0ca7cc3a034aa3a1c3c1794b78e6ca207e"
|
||||
integrity sha512-wZn02DH8VYPv3FC0ub4my52Rttsus/rFw+UUfzdb3tHMHXB66LqN+rR0ssIOZrH6K+VLN6qpTw9VizjyoH0BxA==
|
||||
|
||||
"@swc/core-linux-arm64-musl@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.107.tgz#5e0c4fe3fcc49a7bb77ffafa680622e53c982e0a"
|
||||
integrity sha512-vfPF74cWfAm8hyhS8yvYI94ucMHIo8xIYU+oFOW9uvDlGQRgnUf/6DEVbLyt/3yfX5723Ln57U8uiMALbX5Pyw==
|
||||
"@swc/core-linux-arm64-musl@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.2.tgz#5dfd2a8c0483770a307de0ccb6019a082ff0d902"
|
||||
integrity sha512-3G0D5z9hUj9bXNcwmA1eGiFTwe5rWkuL3DsoviTj73TKLpk7u64ND0XjEfO0huVv4vVu9H1jodrKb7nvln/dlw==
|
||||
|
||||
"@swc/core-linux-x64-gnu@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.107.tgz#afb4a656a1717170b2c8b76c9b2349b5077630b4"
|
||||
integrity sha512-uBVNhIg0ip8rH9OnOsCARUFZ3Mq3tbPHxtmWk9uAa5u8jQwGWeBx5+nTHpDOVd3YxKb6+5xDEI/edeeLpha/9g==
|
||||
"@swc/core-linux-x64-gnu@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.2.tgz#314aa76b7c1208e315e3156ab57b7188fb605bc2"
|
||||
integrity sha512-LFxn9U8cjmYHw3jrdPNqPAkBGglKE3tCZ8rA7hYyp0BFxuo7L2ZcEnPm4RFpmSCCsExFH+LEJWuMGgWERoktvg==
|
||||
|
||||
"@swc/core-linux-x64-musl@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.107.tgz#3f9bce2fe13691be39fddc39bba8558fe6308823"
|
||||
integrity sha512-mvACkUvzSIB12q1H5JtabWATbk3AG+pQgXEN95AmEX2ZA5gbP9+B+mijsg7Sd/3tboHr7ZHLz/q3SHTvdFJrEw==
|
||||
"@swc/core-linux-x64-musl@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.2.tgz#b2b226657f6a8d48f561cb3dbe2d414cfbafe467"
|
||||
integrity sha512-dp0fAmreeVVYTUcb4u9njTPrYzKnbIH0EhH2qvC9GOYNNREUu2GezSIDgonjOXkHiTCvopG4xU7y56XtXj4VrQ==
|
||||
|
||||
"@swc/core-win32-arm64-msvc@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.107.tgz#5b485e9ce2de6f27ce2fbc1ba8c0b4e98009318d"
|
||||
integrity sha512-J3P14Ngy/1qtapzbguEH41kY109t6DFxfbK4Ntz9dOWNuVY3o9/RTB841ctnJk0ZHEG+BjfCJjsD2n8H5HcaOA==
|
||||
"@swc/core-win32-arm64-msvc@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.2.tgz#582f79fa328ce0f426ab8313b3d881e7315fab2f"
|
||||
integrity sha512-HlVIiLMQkzthAdqMslQhDkoXJ5+AOLUSTV6fm6shFKZKqc/9cJvr4S8UveNERL9zUficA36yM3bbfo36McwnvQ==
|
||||
|
||||
"@swc/core-win32-ia32-msvc@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.107.tgz#1bbe3ce6784b3e4203bf89443c33411c27389b56"
|
||||
integrity sha512-ZBUtgyjTHlz8TPJh7kfwwwFma+ktr6OccB1oXC8fMSopD0AxVnQasgun3l3099wIsAB9eEsJDQ/3lDkOLs1gBA==
|
||||
"@swc/core-win32-ia32-msvc@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.2.tgz#15c8289e1c18857f79b9b888100ab1f871bf58f6"
|
||||
integrity sha512-WCF8faPGjCl4oIgugkp+kL9nl3nUATlzKXCEGFowMEmVVCFM0GsqlmGdPp1pjZoWc9tpYanoXQDnp5IvlDSLhA==
|
||||
|
||||
"@swc/core-win32-x64-msvc@1.3.107":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.107.tgz#c89640b16504ddda1f1faf573a7ed7193dc87485"
|
||||
integrity sha512-Eyzo2XRqWOxqhE1gk9h7LWmUf4Bp4Xn2Ttb0ayAXFp6YSTxQIThXcT9kipXZqcpxcmDwoq8iWbbf2P8XL743EA==
|
||||
"@swc/core-win32-x64-msvc@1.4.2":
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.2.tgz#c999ca7b68124d058b40a1431cdd6f56779670d5"
|
||||
integrity sha512-oV71rwiSpA5xre2C5570BhCsg1HF97SNLsZ/12xv7zayGzqr3yvFALFJN8tHKpqUdCB4FGPjoP3JFdV3i+1wUw==
|
||||
|
||||
"@swc/core@^1.3.90":
|
||||
version "1.3.107"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.107.tgz#081697224ec3bffa63c33209d242e4f0b2c49e78"
|
||||
integrity sha512-zKhqDyFcTsyLIYK1iEmavljZnf4CCor5pF52UzLAz4B6Nu/4GLU+2LQVAf+oRHjusG39PTPjd2AlRT3f3QWfsQ==
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.4.2.tgz#310b0d5e93e47ca72f54150c8f9efcb434c39b17"
|
||||
integrity sha512-vWgY07R/eqj1/a0vsRKLI9o9klGZfpLNOVEnrv4nrccxBgYPjcf22IWwAoaBJ+wpA7Q4fVjCUM8lP0m01dpxcg==
|
||||
dependencies:
|
||||
"@swc/counter" "^0.1.1"
|
||||
"@swc/counter" "^0.1.2"
|
||||
"@swc/types" "^0.1.5"
|
||||
optionalDependencies:
|
||||
"@swc/core-darwin-arm64" "1.3.107"
|
||||
"@swc/core-darwin-x64" "1.3.107"
|
||||
"@swc/core-linux-arm-gnueabihf" "1.3.107"
|
||||
"@swc/core-linux-arm64-gnu" "1.3.107"
|
||||
"@swc/core-linux-arm64-musl" "1.3.107"
|
||||
"@swc/core-linux-x64-gnu" "1.3.107"
|
||||
"@swc/core-linux-x64-musl" "1.3.107"
|
||||
"@swc/core-win32-arm64-msvc" "1.3.107"
|
||||
"@swc/core-win32-ia32-msvc" "1.3.107"
|
||||
"@swc/core-win32-x64-msvc" "1.3.107"
|
||||
"@swc/core-darwin-arm64" "1.4.2"
|
||||
"@swc/core-darwin-x64" "1.4.2"
|
||||
"@swc/core-linux-arm-gnueabihf" "1.4.2"
|
||||
"@swc/core-linux-arm64-gnu" "1.4.2"
|
||||
"@swc/core-linux-arm64-musl" "1.4.2"
|
||||
"@swc/core-linux-x64-gnu" "1.4.2"
|
||||
"@swc/core-linux-x64-musl" "1.4.2"
|
||||
"@swc/core-win32-arm64-msvc" "1.4.2"
|
||||
"@swc/core-win32-ia32-msvc" "1.4.2"
|
||||
"@swc/core-win32-x64-msvc" "1.4.2"
|
||||
|
||||
"@swc/counter@^0.1.1":
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.2.tgz#bf06d0770e47c6f1102270b744e17b934586985e"
|
||||
integrity sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==
|
||||
"@swc/counter@^0.1.2", "@swc/counter@^0.1.3":
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9"
|
||||
integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
|
||||
|
||||
"@swc/helpers@^0.5.0":
|
||||
version "0.5.2"
|
||||
|
|
@ -2744,11 +2737,12 @@
|
|||
tslib "^2.4.0"
|
||||
|
||||
"@swc/jest@^0.2.26":
|
||||
version "0.2.34"
|
||||
resolved "https://registry.yarnpkg.com/@swc/jest/-/jest-0.2.34.tgz#1d459171887b11855ec01d73c647f2e9ecaffd7b"
|
||||
integrity sha512-MrS4m3yHFfnkYjxr3eqxshWi6fVhPViHQsb6XfiTO81niwEqYXeR58YhGJee6R0bfQHC69cv5OJ9+dYTYaYKRg==
|
||||
version "0.2.36"
|
||||
resolved "https://registry.yarnpkg.com/@swc/jest/-/jest-0.2.36.tgz#2797450a30d28b471997a17e901ccad946fe693e"
|
||||
integrity sha512-8X80dp81ugxs4a11z1ka43FPhP+/e+mJNXJSxiNYk8gIX/jPBtY4gQTrKu/KIoco8bzKuPI5lUxjfLiGsfvnlw==
|
||||
dependencies:
|
||||
"@jest/create-cache-key-function" "^29.7.0"
|
||||
"@swc/counter" "^0.1.3"
|
||||
jsonc-parser "^3.2.0"
|
||||
|
||||
"@swc/types@^0.1.5":
|
||||
|
|
@ -3000,15 +2994,7 @@
|
|||
dependencies:
|
||||
"@types/istanbul-lib-report" "*"
|
||||
|
||||
"@types/jest@*":
|
||||
version "29.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.2.tgz#874e7dc6702fa6a3fe6107792aa98636dcc480b4"
|
||||
integrity sha512-og1wAmdxKoS71K2ZwSVqWPX6OVn3ihZ6ZT2qvZvZQm90lJVDyXIjYcu4Khx2CNIeaFv12rOU/YObOsI3VOkzog==
|
||||
dependencies:
|
||||
expect "^29.0.0"
|
||||
pretty-format "^29.0.0"
|
||||
|
||||
"@types/jest@^29.5.0":
|
||||
"@types/jest@*", "@types/jest@^29.5.0":
|
||||
version "29.5.12"
|
||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544"
|
||||
integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==
|
||||
|
|
@ -3142,9 +3128,9 @@
|
|||
"@types/react" "*"
|
||||
|
||||
"@types/react-dom@^18.0.0":
|
||||
version "18.2.18"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.18.tgz#16946e6cd43971256d874bc3d0a72074bb8571dd"
|
||||
integrity sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==
|
||||
version "18.2.19"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.19.tgz#b84b7c30c635a6c26c6a6dfbb599b2da9788be58"
|
||||
integrity sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==
|
||||
dependencies:
|
||||
"@types/react" "*"
|
||||
|
||||
|
|
@ -4508,7 +4494,22 @@ chardet@^0.7.0:
|
|||
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
|
||||
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
|
||||
|
||||
"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3:
|
||||
"chokidar@>=3.0.0 <4.0.0":
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
|
||||
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
|
||||
dependencies:
|
||||
anymatch "~3.1.2"
|
||||
braces "~3.0.2"
|
||||
glob-parent "~5.1.2"
|
||||
is-binary-path "~2.1.0"
|
||||
is-glob "~4.0.1"
|
||||
normalize-path "~3.0.0"
|
||||
readdirp "~3.6.0"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
chokidar@^3.5.3:
|
||||
version "3.5.3"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
|
||||
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
|
||||
|
|
@ -5421,11 +5422,6 @@ diff-sequences@^27.5.1:
|
|||
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327"
|
||||
integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==
|
||||
|
||||
diff-sequences@^29.3.1:
|
||||
version "29.3.1"
|
||||
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e"
|
||||
integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==
|
||||
|
||||
diff-sequences@^29.6.3:
|
||||
version "29.6.3"
|
||||
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
|
||||
|
|
@ -6271,18 +6267,7 @@ expect@^27.5.1:
|
|||
jest-matcher-utils "^27.5.1"
|
||||
jest-message-util "^27.5.1"
|
||||
|
||||
expect@^29.0.0:
|
||||
version "29.3.1"
|
||||
resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6"
|
||||
integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==
|
||||
dependencies:
|
||||
"@jest/expect-utils" "^29.3.1"
|
||||
jest-get-type "^29.2.0"
|
||||
jest-matcher-utils "^29.3.1"
|
||||
jest-message-util "^29.3.1"
|
||||
jest-util "^29.3.1"
|
||||
|
||||
expect@^29.7.0:
|
||||
expect@^29.0.0, expect@^29.7.0:
|
||||
version "29.7.0"
|
||||
resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
|
||||
integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
|
||||
|
|
@ -7266,9 +7251,9 @@ immutable@4.3.1:
|
|||
integrity sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==
|
||||
|
||||
immutable@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef"
|
||||
integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==
|
||||
version "4.3.5"
|
||||
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0"
|
||||
integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==
|
||||
|
||||
import-fresh@^3.0.0, import-fresh@^3.2.1:
|
||||
version "3.3.0"
|
||||
|
|
@ -8015,16 +8000,6 @@ jest-diff@^27.5.1:
|
|||
jest-get-type "^27.5.1"
|
||||
pretty-format "^27.5.1"
|
||||
|
||||
jest-diff@^29.3.1:
|
||||
version "29.3.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527"
|
||||
integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==
|
||||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
diff-sequences "^29.3.1"
|
||||
jest-get-type "^29.2.0"
|
||||
pretty-format "^29.3.1"
|
||||
|
||||
jest-diff@^29.7.0:
|
||||
version "29.7.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
|
||||
|
|
@ -8084,11 +8059,6 @@ jest-get-type@^27.5.1:
|
|||
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1"
|
||||
integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==
|
||||
|
||||
jest-get-type@^29.2.0:
|
||||
version "29.2.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408"
|
||||
integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==
|
||||
|
||||
jest-get-type@^29.6.3:
|
||||
version "29.6.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
|
||||
|
|
@ -8131,16 +8101,6 @@ jest-matcher-utils@^27.5.1:
|
|||
jest-get-type "^27.5.1"
|
||||
pretty-format "^27.5.1"
|
||||
|
||||
jest-matcher-utils@^29.3.1:
|
||||
version "29.3.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572"
|
||||
integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==
|
||||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
jest-diff "^29.3.1"
|
||||
jest-get-type "^29.2.0"
|
||||
pretty-format "^29.3.1"
|
||||
|
||||
jest-matcher-utils@^29.7.0:
|
||||
version "29.7.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
|
||||
|
|
@ -8166,21 +8126,6 @@ jest-message-util@^27.5.1:
|
|||
slash "^3.0.0"
|
||||
stack-utils "^2.0.3"
|
||||
|
||||
jest-message-util@^29.3.1:
|
||||
version "29.3.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb"
|
||||
integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.12.13"
|
||||
"@jest/types" "^29.3.1"
|
||||
"@types/stack-utils" "^2.0.0"
|
||||
chalk "^4.0.0"
|
||||
graceful-fs "^4.2.9"
|
||||
micromatch "^4.0.4"
|
||||
pretty-format "^29.3.1"
|
||||
slash "^3.0.0"
|
||||
stack-utils "^2.0.3"
|
||||
|
||||
jest-message-util@^29.7.0:
|
||||
version "29.7.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
|
||||
|
|
@ -8339,7 +8284,7 @@ jest-util@^27.5.1:
|
|||
graceful-fs "^4.2.9"
|
||||
picomatch "^2.2.3"
|
||||
|
||||
jest-util@^29.0.0, jest-util@^29.3.1:
|
||||
jest-util@^29.0.0:
|
||||
version "29.3.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1"
|
||||
integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==
|
||||
|
|
@ -9970,17 +9915,17 @@ pkg-dir@^7.0.0:
|
|||
dependencies:
|
||||
find-up "^6.3.0"
|
||||
|
||||
playwright-core@1.39.0:
|
||||
version "1.39.0"
|
||||
resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.39.0.tgz#efeaea754af4fb170d11845b8da30b2323287c63"
|
||||
integrity sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==
|
||||
playwright-core@1.41.2:
|
||||
version "1.41.2"
|
||||
resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.41.2.tgz#db22372c708926c697acc261f0ef8406606802d9"
|
||||
integrity sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==
|
||||
|
||||
playwright@1.39.0:
|
||||
version "1.39.0"
|
||||
resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.39.0.tgz#184c81cd6478f8da28bcd9e60e94fcebf566e077"
|
||||
integrity sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==
|
||||
playwright@1.41.2:
|
||||
version "1.41.2"
|
||||
resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.41.2.tgz#4e760b1c79f33d9129a8c65cc27953be6dd35042"
|
||||
integrity sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==
|
||||
dependencies:
|
||||
playwright-core "1.39.0"
|
||||
playwright-core "1.41.2"
|
||||
optionalDependencies:
|
||||
fsevents "2.3.2"
|
||||
|
||||
|
|
@ -10186,16 +10131,7 @@ pretty-format@^27.0.2, pretty-format@^27.5.1:
|
|||
ansi-styles "^5.0.0"
|
||||
react-is "^17.0.1"
|
||||
|
||||
pretty-format@^29.0.0, pretty-format@^29.3.1:
|
||||
version "29.3.1"
|
||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da"
|
||||
integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==
|
||||
dependencies:
|
||||
"@jest/schemas" "^29.0.0"
|
||||
ansi-styles "^5.0.0"
|
||||
react-is "^18.0.0"
|
||||
|
||||
pretty-format@^29.7.0:
|
||||
pretty-format@^29.0.0, pretty-format@^29.7.0:
|
||||
version "29.7.0"
|
||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
|
||||
integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
|
||||
|
|
@ -11559,6 +11495,13 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1:
|
|||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
|
||||
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
||||
|
||||
semver@^7.6.0:
|
||||
version "7.6.0"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
|
||||
integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
|
||||
dependencies:
|
||||
lru-cache "^6.0.0"
|
||||
|
||||
sentence-case@^2.1.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue