Skip to content

Commit dad2832

Browse files
committed
Update github actions
1 parent d699db1 commit dad2832

File tree

6 files changed

+42
-13
lines changed

6 files changed

+42
-13
lines changed

.github/workflows/main.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
runs-on: ${{ matrix.os }}
88
strategy:
99
matrix:
10-
node: ['12.x', '14.x', '16.x']
10+
node: ['14.x', '16.x', '18.x']
1111
os: [ubuntu-latest, windows-latest, macOS-latest]
1212

1313
steps:
@@ -21,12 +21,16 @@ jobs:
2121

2222
- name: Install deps and build (with cache)
2323
uses: bahmutov/npm-install@v1
24+
with:
25+
working-directory: |
26+
.
27+
examples
2428
2529
- name: Lint
2630
run: npm run lint
2731

2832
- name: Test
29-
run: npm run test --ci --coverage --maxWorkers=2
33+
run: npm run test:all --ci --coverage --maxWorkers=2
3034

3135
- name: Build
3236
run: npm run build

.github/workflows/publish.yml

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ on:
66
types: [published]
77

88
jobs:
9-
publish-npm:
9+
publish:
1010
name: 'Publish to npm'
1111
runs-on: ubuntu-latest
12+
if: '!contains(github.event.payload.tag_name, "beta")'
1213
steps:
1314
- uses: actions/checkout@v2
1415

@@ -17,10 +18,32 @@ jobs:
1718
node-version: 'lts/*'
1819
registry-url: https://registry.npmjs.org/
1920

20-
- run: npm run install
21+
- name: Install deps and build (with cache)
22+
uses: bahmutov/npm-install@v1
2123

2224
- run: npm run build
2325

24-
- run: npm publish --access public
26+
- run: npm publish --dry-run --access public
27+
env:
28+
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
29+
30+
publish_beta:
31+
name: 'Publish beta to npm'
32+
runs-on: ubuntu-latest
33+
if: contains(github.event.payload.tag_name, "beta")
34+
steps:
35+
- uses: actions/checkout@v2
36+
37+
- uses: actions/setup-node@v2
38+
with:
39+
node-version: 'lts/*'
40+
registry-url: https://registry.npmjs.org/
41+
42+
- name: Install deps and build (with cache)
43+
uses: bahmutov/npm-install@v1
44+
45+
- run: npm run build
46+
47+
- run: npm publish --tag beta --dry-run --access public
2548
env:
2649
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}

examples/src/tests/viewport.test.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { render, act, screen } from '@testing-library/react';
22

33
import { mockViewport, mockViewportForTestGroup } from '../../../dist';
4-
import { MockedMediaQueryListEvent } from '../../../src/mocks/MediaQueryListEvent';
54

65
import CustomUseMedia from '../components/viewport/custom-use-media/CustomUseMedia';
76
import DeprecatedUseMedia from '../components/viewport/deprecated-use-media/DeprecatedUseMedia';
@@ -77,7 +76,7 @@ describe('mockViewport', () => {
7776
expect(screen.getByText('not desktop')).toBeInTheDocument();
7877
expect(screen.queryByText('desktop')).not.toBeInTheDocument();
7978
expect(cb).toHaveBeenCalledTimes(1);
80-
expect(event).toBeInstanceOf(MockedMediaQueryListEvent);
79+
expect(event).toBeInstanceOf(MediaQueryListEvent);
8180
expect(event.media).toBe('(min-width: 640px)');
8281
expect(event.matches).toBe(false);
8382

@@ -101,7 +100,7 @@ describe('mockViewport', () => {
101100
const [event] = cb.mock.calls[0];
102101

103102
expect(cb).toHaveBeenCalledTimes(1);
104-
expect(event).toBeInstanceOf(MockedMediaQueryListEvent);
103+
expect(event).toBeInstanceOf(MediaQueryListEvent);
105104
expect(event.media).toBe('(min-width: 640px)');
106105
expect(event.matches).toBe(false);
107106

@@ -125,7 +124,7 @@ describe('mockViewport', () => {
125124
const [event] = cb.mock.calls[0];
126125

127126
expect(cb).toHaveBeenCalledTimes(1);
128-
expect(event).toBeInstanceOf(MockedMediaQueryListEvent);
127+
expect(event).toBeInstanceOf(MediaQueryListEvent);
129128
expect(event.media).toBe('(min-width: 640px)');
130129
expect(event.matches).toBe(false);
131130

jest.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module.exports = {
33
preset: 'ts-jest',
44
testEnvironment: 'jsdom',
55
setupFilesAfterEnv: ['<rootDir>/jest-setup.ts'],
6+
testPathIgnorePatterns: ['/node_modules/', '/examples/'],
67
globals: {
78
'ts-jest': {
89
tsconfig: {

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
"start": "tsup --watch",
3434
"build": "tsup",
3535
"test": "jest",
36+
"test:examples": "npm --prefix ./examples run test",
37+
"test:all": "npm run test && npm run test:examples",
3638
"lint": "eslint src/ --ext .ts,.tsx",
3739
"prepare": "tsup"
3840
},

src/mocks/viewport.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type ListenerOrListenerObject = Listener | ListenerObject;
4040
function isEventListenerObject(
4141
obj: ListenerOrListenerObject
4242
): obj is ListenerObject {
43-
return (obj as any).handleEvent !== undefined;
43+
return (obj as ListenerObject).handleEvent !== undefined;
4444
}
4545

4646
function mockViewport(desc: ViewportDescription): MockViewport {
@@ -104,17 +104,17 @@ function mockViewport(desc: ViewportDescription): MockViewport {
104104
},
105105
media: query,
106106
onchange: null,
107-
addListener: function(listener) {
107+
addListener: function (listener) {
108108
if (listener) {
109109
addOldListener(this, this.matches, listener);
110110
}
111111
}, // deprecated
112-
removeListener: listener => {
112+
removeListener: (listener) => {
113113
if (listener) {
114114
removeOldListener(listener);
115115
}
116116
}, // deprecated
117-
addEventListener: function(
117+
addEventListener: function (
118118
eventType: Parameters<MediaQueryList['addEventListener']>[0],
119119
listener: Parameters<MediaQueryList['addEventListener']>[1]
120120
) {

0 commit comments

Comments
 (0)