1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-23 02:10:12 +01:00
metamask-extension/ui/pages/notifications/notification.test.js
Guillaume Roux b599035a12
Snap notifications integration (#14605)
* begin controller implentation

* add NotificationController

* create selectors and actions

* update actions tu use forceUpdateMetamaskState

* Basic notification UI

* fix typo and remove console.log

* lint

* more css

* add notifications scroll

* add translations and fix some css

* Fix rebase and edit colors

* add flask tags

* add flask tag to routes component

* add missing flask tags

* add tests

* fix tests

* store notification expiration delay in constant

* address requested changes

* rename to unreadNotificationsCount

* add missing flask tag
2022-06-01 19:09:13 +02:00

101 lines
2.4 KiB
JavaScript

import React from 'react';
import { renderWithProvider } from '../../../test/lib/render-helpers';
import configureStore from '../../store/store';
import Notifications, { NotificationItem } from './notifications';
describe('Notifications', () => {
const render = (params) => {
const store = configureStore({
...params,
});
return renderWithProvider(<Notifications />, store);
};
it('can render a list of notifications', () => {
const mockStore = {
metamask: {
notifications: {
test: {
id: 'test',
origin: 'test',
createdDate: 1652967897732,
readDate: null,
message: 'foo',
},
test2: {
id: 'test2',
origin: 'test',
createdDate: 1652967897732,
readDate: null,
message: 'bar',
},
},
snaps: {
test: {
enabled: true,
id: 'test',
manifest: {
proposedName: 'Notification Example Snap',
description: 'A notification example snap.',
},
},
},
},
};
const { getByText } = render(mockStore);
expect(
getByText(mockStore.metamask.notifications.test.message),
).toBeDefined();
expect(
getByText(mockStore.metamask.notifications.test2.message),
).toBeDefined();
});
it('can render an empty list of notifications', () => {
const mockStore = {
metamask: {
notifications: {},
snaps: {},
},
};
const { getByText } = render(mockStore);
expect(getByText('Nothing to see here.')).toBeDefined();
});
});
describe('NotificationItem', () => {
const render = (props) => renderWithProvider(<NotificationItem {...props} />);
it('can render notification item', () => {
const props = {
notification: {
id: 'test',
origin: 'test',
createdDate: 1652967897732,
readDate: null,
message: 'Hello, http://localhost:8086!',
},
snaps: [
{
id: 'test',
tabMessage: () => 'test snap name',
descriptionMessage: () => 'test description',
sectionMessage: () => 'test section Message',
route: '/test',
icon: 'test',
},
],
onItemClick: jest.fn(),
};
const { getByText } = render(props);
expect(getByText(props.notification.message)).toBeDefined();
});
});