Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(test): Load fixtures with helpers #9699

Merged
merged 5 commits into from Apr 23, 2021
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 2 additions & 3 deletions lib/config/decrypt.spec.ts
@@ -1,10 +1,9 @@
import fs from 'fs';
import { getName } from '../../test/util';
import { getName, loadFixture } from '../../test/util';
import { setAdminConfig } from './admin';
import { decryptConfig } from './decrypt';
import type { RenovateConfig } from './types';

const privateKey = fs.readFileSync('lib/config/keys/__fixtures__/private.pem');
const privateKey = loadFixture(__filename, 'private.pem', 'keys');

describe(getName(__filename), () => {
describe('decryptConfig()', () => {
Expand Down
8 changes: 6 additions & 2 deletions lib/config/presets/index.spec.ts
@@ -1,6 +1,5 @@
import { getName, mocked } from '../../../test/util';
import { getName, loadJsonFixture, mocked } from '../../../test/util';
import type { RenovateConfig } from '../types';
import presetIkatyang from './__fixtures__/renovate-config-ikatyang.json';
import * as _local from './local';
import * as _npm from './npm';
import {
Expand All @@ -17,6 +16,11 @@ jest.mock('./local');
const npm = mocked(_npm);
const local = mocked(_local);

const presetIkatyang = loadJsonFixture(
__filename,
'renovate-config-ikatyang.json'
);

npm.getPreset = jest.fn(({ packageName, presetName }) => {
if (packageName === 'renovate-config-ikatyang') {
return presetIkatyang.versions[presetIkatyang['dist-tags'].latest][
Expand Down
16 changes: 3 additions & 13 deletions lib/datasource/cdnjs/index.spec.ts
@@ -1,21 +1,11 @@
import fs from 'fs';
import { getPkgReleases } from '..';
import * as httpMock from '../../../test/http-mock';
import { getName } from '../../../test/util';
import { getName, loadFixture } from '../../../test/util';
import { EXTERNAL_HOST_ERROR } from '../../constants/error-messages';
import { id as datasource } from '.';

let res1 = fs.readFileSync(
'lib/datasource/cdnjs/__fixtures__/d3-force.json',
'utf8'
);
res1 = JSON.parse(res1);

let res2 = fs.readFileSync(
'lib/datasource/cdnjs/__fixtures__/bulma.json',
'utf8'
);
res2 = JSON.parse(res2);
const res1 = loadFixture(__filename, 'd3-force.json');
const res2 = loadFixture(__filename, 'bulma.json');

const baseUrl = 'https://api.cdnjs.com/';

Expand Down
11 changes: 4 additions & 7 deletions lib/datasource/crate/index.spec.ts
Expand Up @@ -5,7 +5,7 @@ import { DirectoryResult, dir } from 'tmp-promise';
import { dirname, join } from 'upath';
import { getPkgReleases } from '..';
import * as httpMock from '../../../test/http-mock';
import { getName } from '../../../test/util';
import { getName, loadFixture } from '../../../test/util';
import { setAdminConfig } from '../../config/admin';
import * as memCache from '../../util/cache/memory';
import { setFsConfig } from '../../util/fs';
Expand All @@ -20,12 +20,9 @@ import {
jest.mock('simple-git');
const simpleGit: any = _simpleGit;

const res1 = fs.readFileSync('lib/datasource/crate/__fixtures__/libc', 'utf8');
const res2 = fs.readFileSync(
'lib/datasource/crate/__fixtures__/amethyst',
'utf8'
);
const res3 = fs.readFileSync('lib/datasource/crate/__fixtures__/mypkg', 'utf8');
const res1 = loadFixture(__filename, 'libc');
const res2 = loadFixture(__filename, 'amethyst');
const res3 = loadFixture(__filename, 'mypkg');

const baseUrl =
'https://raw.githubusercontent.com/rust-lang/crates.io-index/master/';
Expand Down
10 changes: 2 additions & 8 deletions lib/datasource/dart/index.spec.ts
@@ -1,15 +1,9 @@
import fs from 'fs';
import { getPkgReleases } from '..';
import * as httpMock from '../../../test/http-mock';
import { getName } from '../../../test/util';
import { getName, loadJsonFixture } from '../../../test/util';
import { id as datasource } from '.';

const body: any = JSON.parse(
fs.readFileSync(
'lib/datasource/dart/__fixtures__/shared_preferences.json',
'utf8'
)
);
const body = loadJsonFixture(__filename, 'shared_preferences.json');

const baseUrl = 'https://pub.dartlang.org/api/packages/';

Expand Down
33 changes: 16 additions & 17 deletions lib/datasource/galaxy-collection/index.spec.ts
@@ -1,29 +1,28 @@
import fs from 'fs';
import { getPkgReleases } from '..';
import * as httpMock from '../../../test/http-mock';
import { getName } from '../../../test/util';
import { getName, loadFixture } from '../../../test/util';

import { id as datasource } from '.';

const communityKubernetesBase = fs.readFileSync(
'lib/datasource/galaxy-collection/__fixtures__/community_kubernetes_base.json',
'utf8'
const communityKubernetesBase = loadFixture(
__filename,
'community_kubernetes_base.json'
);
const communityKubernetesVersions = fs.readFileSync(
'lib/datasource/galaxy-collection/__fixtures__/community_kubernetes_versions.json',
'utf8'
const communityKubernetesVersions = loadFixture(
__filename,
'community_kubernetes_versions.json'
);
const communityKubernetesDetails121 = fs.readFileSync(
'lib/datasource/galaxy-collection/__fixtures__/community_kubernetes_version_details_1.2.1.json',
'utf8'
const communityKubernetesDetails121 = loadFixture(
__filename,
'community_kubernetes_version_details_1.2.1.json'
);
const communityKubernetesDetails120 = fs.readFileSync(
'lib/datasource/galaxy-collection/__fixtures__/community_kubernetes_version_details_1.2.0.json',
'utf8'
const communityKubernetesDetails120 = loadFixture(
__filename,
'community_kubernetes_version_details_1.2.0.json'
);
const communityKubernetesDetails0111 = fs.readFileSync(
'lib/datasource/galaxy-collection/__fixtures__/community_kubernetes_version_details_0.11.1.json',
'utf8'
const communityKubernetesDetails0111 = loadFixture(
__filename,
'community_kubernetes_version_details_0.11.1.json'
);

const baseUrl = 'https://galaxy.ansible.com';
Expand Down
13 changes: 3 additions & 10 deletions lib/datasource/galaxy/index.spec.ts
@@ -1,18 +1,11 @@
import fs from 'fs';
import { getPkgReleases } from '..';
import * as httpMock from '../../../test/http-mock';
import { getName } from '../../../test/util';
import { getName, loadFixture } from '../../../test/util';

import { id as datasource } from '.';

const res1 = fs.readFileSync(
'lib/datasource/galaxy/__fixtures__/timezone',
'utf8'
);
const empty = fs.readFileSync(
'lib/datasource/galaxy/__fixtures__/empty',
'utf8'
);
const res1 = loadFixture(__filename, 'timezone');
const empty = loadFixture(__filename, 'empty');

const baseUrl = 'https://galaxy.ansible.com/';

Expand Down
8 changes: 2 additions & 6 deletions lib/datasource/git-refs/index.spec.ts
@@ -1,18 +1,14 @@
import fs from 'fs-extra';
import _simpleGit from 'simple-git';
import { getPkgReleases } from '..';
import { getName } from '../../../test/util';
import { getName, loadFixture } from '../../../test/util';
import { id as datasource, getDigest } from '.';

jest.mock('simple-git');
const simpleGit: any = _simpleGit;

const depName = 'https://github.com/example/example.git';

const lsRemote1 = fs.readFileSync(
'lib/datasource/git-refs/__fixtures__/ls-remote-1.txt',
'utf8'
);
const lsRemote1 = loadFixture(__filename, 'ls-remote-1.txt');

describe(getName(__filename), () => {
describe('getReleases', () => {
Expand Down
8 changes: 2 additions & 6 deletions lib/datasource/git-tags/index.spec.ts
@@ -1,18 +1,14 @@
import fs from 'fs-extra';
import _simpleGit from 'simple-git';
import { getPkgReleases } from '..';
import { getName } from '../../../test/util';
import { getName, loadFixture } from '../../../test/util';
import { id as datasource, getDigest } from '.';

jest.mock('simple-git');
const simpleGit: any = _simpleGit;

const depName = 'https://github.com/example/example.git';

const lsRemote1 = fs.readFileSync(
'lib/datasource/git-refs/__fixtures__/ls-remote-1.txt',
'utf8'
);
const lsRemote1 = loadFixture(__filename, 'ls-remote-1.txt', '../git-refs');

describe(getName(__filename), () => {
describe('getReleases', () => {
Expand Down
14 changes: 4 additions & 10 deletions lib/datasource/gradle-version/index.spec.ts
@@ -1,14 +1,11 @@
import fs from 'fs';
import { GetPkgReleasesConfig, GetReleasesConfig, getPkgReleases } from '..';
import * as httpMock from '../../../test/http-mock';
import { getName, partial } from '../../../test/util';
import { getName, loadJsonFixture, partial } from '../../../test/util';
import { ExternalHostError } from '../../types/errors/external-host-error';
import { id as versioning } from '../../versioning/gradle';
import { id as datasource, getReleases } from '.';

const allResponse: any = fs.readFileSync(
'lib/datasource/gradle-version/__fixtures__/all.json'
);
const allResponse: any = loadJsonFixture(__filename, 'all.json');

let config: GetPkgReleasesConfig;

Expand All @@ -32,7 +29,7 @@ describe(getName(__filename), () => {
httpMock
.scope('https://services.gradle.org/')
.get('/versions/all')
.reply(200, JSON.parse(allResponse));
.reply(200, allResponse);
const res = await getPkgReleases(config);
expect(res).toMatchSnapshot();
expect(res).not.toBeNull();
Expand All @@ -44,10 +41,7 @@ describe(getName(__filename), () => {
});

it('calls configured registryUrls', async () => {
httpMock
.scope('https://foo.bar')
.get('/')
.reply(200, JSON.parse(allResponse));
httpMock.scope('https://foo.bar').get('/').reply(200, allResponse);

httpMock
.scope('http://baz.qux')
Expand Down
8 changes: 2 additions & 6 deletions lib/datasource/helm/index.spec.ts
@@ -1,14 +1,10 @@
import fs from 'fs';
import { getPkgReleases } from '..';
import * as httpMock from '../../../test/http-mock';
import { getName } from '../../../test/util';
import { getName, loadFixture } from '../../../test/util';
import { id as datasource } from '.';

// Truncated index.yaml file
const indexYaml = fs.readFileSync(
'lib/datasource/helm/__fixtures__/index.yaml',
'utf8'
);
const indexYaml = loadFixture(__filename, 'index.yaml');

describe(getName(__filename), () => {
describe('getReleases', () => {
Expand Down
9 changes: 2 additions & 7 deletions lib/datasource/hex/index.spec.ts
@@ -1,18 +1,13 @@
import fs from 'fs';
import { getPkgReleases } from '..';
import * as httpMock from '../../../test/http-mock';
import { getName } from '../../../test/util';
import { getName, loadJsonFixture } from '../../../test/util';
import { EXTERNAL_HOST_ERROR } from '../../constants/error-messages';
import * as _hostRules from '../../util/host-rules';
import { id as datasource } from '.';

const hostRules: any = _hostRules;

let res1 = fs.readFileSync(
'lib/datasource/hex/__fixtures__/certifi.json',
'utf8'
);
res1 = JSON.parse(res1);
const res1 = loadJsonFixture(__filename, 'certifi.json');

jest.mock('../../util/host-rules');

Expand Down
13 changes: 10 additions & 3 deletions lib/datasource/jenkins-plugins/index.spec.ts
@@ -1,12 +1,19 @@
import { getPkgReleases } from '..';
import * as httpMock from '../../../test/http-mock';
import { getName } from '../../../test/util';
import { getName, loadJsonFixture } from '../../../test/util';
import * as versioning from '../../versioning/docker';
import jenkinsPluginsVersions from './__fixtures__/plugin-versions.json';
import jenkinsPluginsInfo from './__fixtures__/update-center.actual.json';
import { resetCache } from './get';
import * as jenkins from '.';

const jenkinsPluginsVersions = loadJsonFixture(
__filename,
'plugin-versions.json'
);
const jenkinsPluginsInfo = loadJsonFixture(
__filename,
'update-center.actual.json'
);

describe(getName(__filename), () => {
describe('getReleases', () => {
const SKIP_CACHE = process.env.RENOVATE_SKIP_CACHE;
Expand Down
22 changes: 7 additions & 15 deletions lib/datasource/maven/index.spec.ts
@@ -1,29 +1,21 @@
import fs from 'fs';
import nock from 'nock';
import { resolve } from 'upath';
import { Release, getPkgReleases } from '..';
import { getName } from '../../../test/util';
import { getName, loadFixture } from '../../../test/util';
import { EXTERNAL_HOST_ERROR } from '../../constants/error-messages';
import * as hostRules from '../../util/host-rules';
import * as mavenVersioning from '../../versioning/maven';
import { id as datasource } from '.';

const MYSQL_VERSIONS = ['6.0.5', '6.0.6', '8.0.7', '8.0.8', '8.0.9'];

const MYSQL_MAVEN_METADATA = fs.readFileSync(
resolve(
__dirname,
'./__fixtures__/repo1.maven.org/maven2/mysql/mysql-connector-java/maven-metadata.xml'
),
'utf8'
const MYSQL_MAVEN_METADATA = loadFixture(
__filename,
'repo1.maven.org/maven2/mysql/mysql-connector-java/maven-metadata.xml'
);

const MYSQL_MAVEN_MYSQL_POM = fs.readFileSync(
resolve(
__dirname,
'./__fixtures__/repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.12/mysql-connector-java-8.0.12.pom'
),
'utf8'
const MYSQL_MAVEN_MYSQL_POM = loadFixture(
__filename,
'repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.12/mysql-connector-java-8.0.12.pom'
);

const config = {
Expand Down