mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2024-12-23 01:20:24 +03:00
Created ImageDownloader test
This commit is contained in:
parent
3a8c7a7bf4
commit
9518a5e442
7 changed files with 50 additions and 32 deletions
|
@ -1,19 +1,18 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
coverageDirectory: '<rootDir>/coverage',
|
coverageDirectory: '<rootDir>/coverage',
|
||||||
collectCoverageFrom: [
|
collectCoverageFrom: [
|
||||||
'src/**/*.{js,ts,tsx}',
|
'src/**/*.{ts,tsx}',
|
||||||
'!src/registerServiceWorker.js',
|
'!src/*.{ts,tsx}',
|
||||||
'!src/index.ts',
|
|
||||||
'!src/reducers/index.ts',
|
'!src/reducers/index.ts',
|
||||||
'!src/**/provideServices.ts',
|
'!src/**/provideServices.ts',
|
||||||
'!src/container/*.ts',
|
'!src/container/*.ts',
|
||||||
],
|
],
|
||||||
coverageThreshold: {
|
coverageThreshold: {
|
||||||
global: {
|
global: {
|
||||||
|
statements: 80,
|
||||||
branches: 80,
|
branches: 80,
|
||||||
functions: 80,
|
functions: 80,
|
||||||
lines: 80,
|
lines: 80,
|
||||||
statements: 80,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
resolver: 'jest-pnp-resolver',
|
resolver: 'jest-pnp-resolver',
|
||||||
|
|
25
test/common/services/ImageDownloader.test.ts
Normal file
25
test/common/services/ImageDownloader.test.ts
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
import { Mock } from 'ts-mockery';
|
||||||
|
import { AxiosInstance } from 'axios';
|
||||||
|
import { ImageDownloader } from '../../../src/common/services/ImageDownloader';
|
||||||
|
import { windowMock } from '../../mocks/WindowMock';
|
||||||
|
|
||||||
|
describe('ImageDownloader', () => {
|
||||||
|
const get = jest.fn();
|
||||||
|
const axios = Mock.of<AxiosInstance>({ get });
|
||||||
|
let imageDownloader: ImageDownloader;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.clearAllMocks();
|
||||||
|
(global as any).URL = { createObjectURL: () => '' };
|
||||||
|
|
||||||
|
imageDownloader = new ImageDownloader(axios, windowMock);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('calls URL with response type blob', async () => {
|
||||||
|
get.mockResolvedValue({ data: {} });
|
||||||
|
|
||||||
|
await imageDownloader.saveImage('/foo/bar.png', 'my-image.png');
|
||||||
|
|
||||||
|
expect(get).toHaveBeenCalledWith('/foo/bar.png', { responseType: 'blob' });
|
||||||
|
});
|
||||||
|
});
|
18
test/mocks/WindowMock.ts
Normal file
18
test/mocks/WindowMock.ts
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
import { Mock } from 'ts-mockery';
|
||||||
|
|
||||||
|
const createLinkMock = () => ({
|
||||||
|
setAttribute: jest.fn(),
|
||||||
|
click: jest.fn(),
|
||||||
|
style: {},
|
||||||
|
});
|
||||||
|
|
||||||
|
export const appendChild = jest.fn();
|
||||||
|
|
||||||
|
export const removeChild = jest.fn();
|
||||||
|
|
||||||
|
export const windowMock = Mock.of<Window>({
|
||||||
|
document: {
|
||||||
|
createElement: jest.fn(createLinkMock),
|
||||||
|
body: { appendChild, removeChild },
|
||||||
|
},
|
||||||
|
});
|
|
@ -2,21 +2,9 @@ import { Mock } from 'ts-mockery';
|
||||||
import { CsvJson } from 'csvjson';
|
import { CsvJson } from 'csvjson';
|
||||||
import ServersExporter from '../../../src/servers/services/ServersExporter';
|
import ServersExporter from '../../../src/servers/services/ServersExporter';
|
||||||
import LocalStorage from '../../../src/utils/services/LocalStorage';
|
import LocalStorage from '../../../src/utils/services/LocalStorage';
|
||||||
|
import { appendChild, removeChild, windowMock } from '../../mocks/WindowMock';
|
||||||
|
|
||||||
describe('ServersExporter', () => {
|
describe('ServersExporter', () => {
|
||||||
const createLinkMock = () => ({
|
|
||||||
setAttribute: jest.fn(),
|
|
||||||
click: jest.fn(),
|
|
||||||
style: {},
|
|
||||||
});
|
|
||||||
const appendChild = jest.fn();
|
|
||||||
const removeChild = jest.fn();
|
|
||||||
const windowMock = Mock.of<Window>({
|
|
||||||
document: {
|
|
||||||
createElement: jest.fn(createLinkMock),
|
|
||||||
body: { appendChild, removeChild },
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const storageMock = Mock.of<LocalStorage>({
|
const storageMock = Mock.of<LocalStorage>({
|
||||||
get: jest.fn(() => ({
|
get: jest.fn(() => ({
|
||||||
abc123: {
|
abc123: {
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { Doughnut } from 'react-chartjs-2';
|
||||||
import { keys, values } from 'ramda';
|
import { keys, values } from 'ramda';
|
||||||
import { DoughnutChart } from '../../../src/visits/charts/DoughnutChart';
|
import { DoughnutChart } from '../../../src/visits/charts/DoughnutChart';
|
||||||
|
|
||||||
describe.skip('<DoughnutChart />', () => {
|
describe('<DoughnutChart />', () => {
|
||||||
let wrapper: ShallowWrapper;
|
let wrapper: ShallowWrapper;
|
||||||
const stats = {
|
const stats = {
|
||||||
foo: 123,
|
foo: 123,
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { prettify } from '../../../src/utils/helpers/numbers';
|
||||||
import { MAIN_COLOR, MAIN_COLOR_ALPHA } from '../../../src/utils/theme';
|
import { MAIN_COLOR, MAIN_COLOR_ALPHA } from '../../../src/utils/theme';
|
||||||
import { HorizontalBarChart } from '../../../src/visits/charts/HorizontalBarChart';
|
import { HorizontalBarChart } from '../../../src/visits/charts/HorizontalBarChart';
|
||||||
|
|
||||||
describe.skip('<HorizontalBarChart />', () => {
|
describe('<HorizontalBarChart />', () => {
|
||||||
let wrapper: ShallowWrapper;
|
let wrapper: ShallowWrapper;
|
||||||
const stats = {
|
const stats = {
|
||||||
foo: 123,
|
foo: 123,
|
||||||
|
@ -16,7 +16,6 @@ describe.skip('<HorizontalBarChart />', () => {
|
||||||
it('renders Bar with expected properties', () => {
|
it('renders Bar with expected properties', () => {
|
||||||
wrapper = shallow(<HorizontalBarChart stats={stats} />);
|
wrapper = shallow(<HorizontalBarChart stats={stats} />);
|
||||||
const horizontal = wrapper.find(Bar);
|
const horizontal = wrapper.find(Bar);
|
||||||
const cols = wrapper.find('.col-sm-12');
|
|
||||||
|
|
||||||
expect(horizontal).toHaveLength(1);
|
expect(horizontal).toHaveLength(1);
|
||||||
|
|
||||||
|
@ -37,7 +36,6 @@ describe.skip('<HorizontalBarChart />', () => {
|
||||||
},
|
},
|
||||||
y: { stacked: true },
|
y: { stacked: true },
|
||||||
});
|
});
|
||||||
expect(cols).toHaveLength(1);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it.each([
|
it.each([
|
||||||
|
|
|
@ -2,19 +2,9 @@ import { Mock } from 'ts-mockery';
|
||||||
import { CsvJson } from 'csvjson';
|
import { CsvJson } from 'csvjson';
|
||||||
import { VisitsExporter } from '../../../src/visits/services/VisitsExporter';
|
import { VisitsExporter } from '../../../src/visits/services/VisitsExporter';
|
||||||
import { NormalizedVisit } from '../../../src/visits/types';
|
import { NormalizedVisit } from '../../../src/visits/types';
|
||||||
|
import { windowMock } from '../../mocks/WindowMock';
|
||||||
|
|
||||||
describe('VisitsExporter', () => {
|
describe('VisitsExporter', () => {
|
||||||
const createLinkMock = () => ({
|
|
||||||
setAttribute: jest.fn(),
|
|
||||||
click: jest.fn(),
|
|
||||||
style: {},
|
|
||||||
});
|
|
||||||
const windowMock = Mock.of<Window>({
|
|
||||||
document: {
|
|
||||||
createElement: jest.fn(createLinkMock),
|
|
||||||
body: { appendChild: jest.fn(), removeChild: jest.fn() },
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const toCSV = jest.fn();
|
const toCSV = jest.fn();
|
||||||
const csvToJsonMock = Mock.of<CsvJson>({ toCSV });
|
const csvToJsonMock = Mock.of<CsvJson>({ toCSV });
|
||||||
let exporter: VisitsExporter;
|
let exporter: VisitsExporter;
|
||||||
|
|
Loading…
Reference in a new issue