Skip to content
This repository was archived by the owner on Aug 23, 2024. It is now read-only.

Commit 139dd9f

Browse files
paulomargJaKXz
andcommittedMar 3, 2022
Adding tooling for REST resources
Co-authored-by: Jason Kurian <[email protected]>
1 parent 2527af5 commit 139dd9f

22 files changed

+44
-35
lines changed
 

‎.eslintrc.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@ module.exports = {
44
es2021: true,
55
},
66
extends: ['plugin:@shopify/typescript', 'plugin:@shopify/prettier'],
7-
ignorePatterns: ['dist/'],
7+
ignorePatterns: ['dist/', 'src/rest-resources'],
88
rules: {
99
'import/no-named-as-default': 0,
1010
'no-mixed-operators': 0,
1111
'no-console': 0,
12+
'lines-around-comment': 0,
1213
},
1314
overrides: [
1415
{
1516
files: [
16-
'src/rest_resources/__tests__/*.ts',
17-
'src/rest_resources/base.ts',
18-
'src/rest_resources/admin*/*.ts',
17+
'src/__tests__/*.ts',
18+
'src/base-rest-resource.ts',
19+
'src/rest-resources/*',
1920
],
2021
rules: {
2122
'@typescript-eslint/naming-convention': [

‎.github/workflows/workflow.yml

+2
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ jobs:
1414
run: yarn lint
1515
- name: Test
1616
run: yarn test
17+
- name: Test REST resources
18+
run: yarn test_rest_resources

‎jest.config.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
module.exports = {
2-
preset: 'ts-jest',
2+
preset: 'ts-jest/presets/default-esm', // or other ESM presets
3+
globals: {
4+
'ts-jest': {
5+
useESM: true,
6+
},
7+
},
38
testEnvironment: 'node',
49
moduleFileExtensions: ['ts', 'js', 'json'],
510
watchPathIgnorePatterns: ['<rootDir>/node_modules/'],

‎package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"types": "dist/index.d.ts",
77
"prettier": "@shopify/prettier-config",
88
"scripts": {
9-
"test": "jest",
9+
"test": "jest --testPathIgnorePatterns=src/rest-resources/__tests__",
10+
"test_rest_resources": "ls src/rest-resources/__tests__ | xargs -I \"{}\" sh -c 'yarn jest --no-coverage --testPathPattern=\\\"{}\\\" || exit 255'",
1011
"build": "tsc",
1112
"lint": "eslint '**/*.{ts,tsx}' --max-warnings 0",
1213
"clean": "rimraf ./dist tsconfig.tsbuildinfo",
@@ -71,4 +72,4 @@
7172
"dist/*",
7273
"!tsconfig.tsbuildinfo"
7374
]
74-
}
75+
}

‎src/rest_resources/__tests__/base.test.ts ‎src/__tests__/base-rest-resource.test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import {Session} from '../../auth/session';
2-
import {RestResourceRequestError} from '../../error';
1+
import {Session} from '../auth/session';
2+
import {RestResourceRequestError} from '../error';
33

4-
import FakeResource from './fake_resource';
5-
import FakeResourceWithCustomPrefix from './fake_resource_with_custom_prefix';
4+
import FakeResource from './fake-resource';
5+
import FakeResourceWithCustomPrefix from './fake-resource-with-custom-prefix';
66

77
describe('Base REST resource', () => {
88
const domain = 'test-shop.myshopify.io';

‎src/__tests__/context.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Cookies from 'cookies';
22

33
import * as ShopifyErrors from '../error';
44
import {Context} from '../context';
5-
import {ApiVersion, ContextParams} from '../base_types';
5+
import {ApiVersion, ContextParams} from '../base-types';
66

77
jest.mock('cookies');
88

‎src/rest_resources/__tests__/fake_resource_with_custom_prefix.ts ‎src/__tests__/fake-resource-with-custom-prefix.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import Base, {ResourcePath} from '../base';
2-
import {SessionInterface} from '../../auth/session/types';
1+
import Base, {ResourcePath} from '../base-rest-resource';
2+
import {SessionInterface} from '../auth/session/types';
33

44
interface FakeResourceWithCustomPrefixFindArgs {
55
session: SessionInterface;

‎src/rest_resources/__tests__/fake_resource.ts ‎src/__tests__/fake-resource.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import Base, {ParamSet, ResourcePath} from '../base';
2-
import {SessionInterface} from '../../auth/session/types';
1+
import Base, {ParamSet, ResourcePath} from '../base-rest-resource';
2+
import {SessionInterface} from '../auth/session/types';
33

44
interface FakeResourceFindArgs {
55
params?: ParamSet;

‎src/rest_resources/base.ts ‎src/base-rest-resource.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import {
22
HttpResponseError,
33
RestResourceError,
44
RestResourceRequestError,
5-
} from '../error';
6-
import {SessionInterface} from '../auth/session/types';
7-
import {RestClient} from '../clients/rest';
8-
import {RestRequestReturn} from '../clients/rest/types';
9-
import {DataType, GetRequestParams} from '../clients/http_client/types';
5+
} from './error';
6+
import {SessionInterface} from './auth/session/types';
7+
import {RestClient} from './clients/rest';
8+
import {RestRequestReturn} from './clients/rest/types';
9+
import {DataType, GetRequestParams} from './clients/http_client/types';
1010

1111
export interface IdSet {
1212
[id: string]: string | number | null;
File renamed without changes.

‎src/clients/graphql/__tests__/graphql_client.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {ShopifyHeader} from '../../../base_types';
1+
import {ShopifyHeader} from '../../../base-types';
22
import {GraphqlClient} from '../graphql_client';
33
import {Context} from '../../../context';
44
import * as ShopifyErrors from '../../../error';

‎src/clients/graphql/__tests__/storefront_client.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {ShopifyHeader} from '../../../base_types';
1+
import {ShopifyHeader} from '../../../base-types';
22
import {StorefrontClient} from '../storefront_client';
33
import {Context} from '../../../context';
44

‎src/clients/graphql/graphql_client.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {MissingRequiredArgument} from '../../error';
22
import {Context} from '../../context';
3-
import {ShopifyHeader} from '../../base_types';
3+
import {ShopifyHeader} from '../../base-types';
44
import {HttpClient} from '../http_client/http_client';
55
import {DataType, RequestReturn} from '../http_client/types';
66
import * as ShopifyErrors from '../../error';

‎src/clients/graphql/storefront_client.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Context} from '../../context';
2-
import {ShopifyHeader} from '../../base_types';
2+
import {ShopifyHeader} from '../../base-types';
33

44
import {GraphqlClient, AccessTokenHeader} from './graphql_client';
55

‎src/clients/rest/__tests__/rest_client.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import querystring from 'querystring';
22

3-
import {ShopifyHeader} from '../../../base_types';
3+
import {ShopifyHeader} from '../../../base-types';
44
import {DataType, GetRequestParams} from '../../http_client/types';
55
import {RestClient} from '../rest_client';
66
import {RestRequestReturn, PageInfo} from '../types';

‎src/clients/rest/rest_client.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import querystring from 'querystring';
22

33
import {Context} from '../../context';
4-
import {ShopifyHeader} from '../../base_types';
4+
import {ShopifyHeader} from '../../base-types';
55
import {HttpClient} from '../http_client/http_client';
66
import {RequestParams, GetRequestParams} from '../http_client/types';
77
import * as ShopifyErrors from '../../error';

‎src/context.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as ShopifyErrors from './error';
22
import {SessionStorage} from './auth/session/session_storage';
33
import {MemorySessionStorage} from './auth/session/storage/memory';
4-
import {ApiVersion, ContextParams} from './base_types';
4+
import {ApiVersion, ContextParams} from './base-types';
55
import {AuthScopes} from './auth/scopes';
66

77
interface ContextInterface extends ContextParams {

‎src/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export * from './base_types';
1+
export * from './base-types';
22
export * from './auth/types';
33
export * from './clients/types';
44
export * from './utils/types';

‎src/utils/setup-jest.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import {enableFetchMocks} from 'jest-fetch-mock';
1+
import fetchMock from 'jest-fetch-mock';
22

33
import {Context} from '../context';
4-
import {ApiVersion} from '../base_types';
4+
import {ApiVersion} from '../base-types';
55
import {MemorySessionStorage} from '../auth/session';
66

7-
enableFetchMocks();
7+
fetchMock.enableMocks();
88

99
let currentCall = 0;
1010
beforeEach(() => {

‎src/utils/version-compatible.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Context} from '../context';
2-
import {ApiVersion} from '../base_types';
2+
import {ApiVersion} from '../base-types';
33

44
/**
55
* Check if the current or optionally supplied version is compatible with a given version

‎src/webhooks/__tests__/registry.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import request from 'supertest';
55
import {Method, Header, StatusCode} from '@shopify/network';
66

77
import {DeliveryMethod, RegisterOptions, RegisterReturn} from '../types';
8-
import {ApiVersion, ShopifyHeader} from '../../base_types';
8+
import {ApiVersion, ShopifyHeader} from '../../base-types';
99
import {Context} from '../../context';
1010
import {DataType} from '../../clients/types';
1111
import ShopifyWebhooks from '..';

‎src/webhooks/registry.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import http from 'http';
44
import {StatusCode} from '@shopify/network';
55

66
import {GraphqlClient} from '../clients/graphql/graphql_client';
7-
import {ApiVersion, ShopifyHeader} from '../base_types';
7+
import {ApiVersion, ShopifyHeader} from '../base-types';
88
import ShopifyUtilities from '../utils';
99
import {Context} from '../context';
1010
import * as ShopifyErrors from '../error';

0 commit comments

Comments
 (0)
This repository has been archived.