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

More tests & mark rxjs 7 peer #2998

Merged
merged 26 commits into from
Oct 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
230 changes: 114 additions & 116 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ on:
release:
types:
- published
schedule:
- cron: 0 0 * * 1-5

jobs:
build:
Expand All @@ -29,10 +31,12 @@ jobs:
id: node_modules_cache
with:
path: ./node_modules
key: ${{ runner.os }}-14-9-9-node_modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-14-9-9-6-node_modules-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-14-9-9-node_modules-
${{ runner.os }}-14-9-
${{ runner.os }}-14-12-9-9-6-node_modules-
${{ runner.os }}-14-12-9-9-
${{ runner.os }}-14-12-9-
${{ runner.os }}-14-12-
${{ runner.os }}-14-
- name: Yarn offline cache
if: steps.node_modules_cache.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -62,12 +66,14 @@ jobs:
needs: build
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest]
os: [ ubuntu-latest, macos-latest, windows-latest ]
node: ["12", "14", "16"]
firebase: ["9"]
firebaseTools: ["9"]
rxjs: ["6", "7"]
ng: ["12"]
fail-fast: false
name: Test firebase@${{ matrix.firebase }} firebase-tools@${{ matrix.firebaseTools }} on ${{ matrix.os }} Node.js ${{ matrix.node }}
name: Test firebase@${{ matrix.firebase }} firebase-tools@${{ matrix.firebaseTools }} ng@${{ matrix.ng }} rxjs@${{ matrix.rxjs}} on ${{ matrix.os }} Node.js ${{ matrix.node }}
steps:
- name: Checkout
uses: actions/checkout@v2
Expand All @@ -81,49 +87,68 @@ jobs:
uses: actions/cache@v2
with:
path: ./node_modules
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-node_modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-${{ matrix.rxjs }}-node_modules-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-node_modules-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.firebase }}-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-${{ matrix.rxjs }}-node_modules-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-
${{ runner.os }}-${{ matrix.node }}-
- name: Yarn offline cache
if: steps.node_modules_cache.outputs.cache-hit != 'true'
uses: actions/cache@v2
with:
path: ~/.npm-packages-offline-cache
key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
restore-keys: yarn-offline
- name: Install deps
if: steps.node_modules_cache.outputs.cache-hit != 'true'
- name: Configure yarn
run: |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
yarn install --frozen-lockfile --prefer-offline --ignore-engines
yarn add firebase@${{ matrix.firebase }} --prefer-offline --ignore-engines
yarn add firebase-tools@${{ matrix.firebaseTools }} --prefer-offline --ignore-engines
yarn config set ignore-engines true
- name: Yarn install
if: steps.node_modules_cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --prefer-offline
- name: Bump deps
run: |
yarn add firebase@${{ matrix.firebase }}
yarn add firebase-tools@${{ matrix.firebaseTools }}
yarn add rxjs@${{ matrix.rxjs }} --prefer-offline
npx ng update @angular/core@${{ matrix.ng }} @angular/cli@${{ matrix.ng }} --allow-dirty --force || true
- name: Firebase emulator cache
uses: actions/cache@v2
with:
path: ~/.cache/firebase/emulators
key: firebase_emulators
- name: 'Download Artifacts'
- name: Download Artifacts
uses: actions/download-artifact@v2
- name: Run tests
- name: Relocate Artifacts
run: mv angularfire-${{ github.run_id }} dist
- name: Test node
run: |
mv angularfire-${{ github.run_id }} dist
yarn build:jasmine
yarn test:node
- name: Test browser
if: matrix.os == 'ubuntu-latest' && matrix.node == '14' && matrix.firebaseTools == '9'
run: yarn test:chrome-headless

contribute:
# TODO dry up
canary:
runs-on: ${{ matrix.os }}
name: Contribute ${{ matrix.os }} on Node.js ${{ matrix.node }}
if: ${{ github.ref == 'refs/heads/master' }}
needs: [ 'build', 'test' ]
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
node: ["12", "14", "16"]
os: [ ubuntu-latest ]
node: ["14"]
firebase: ["9", "canary"]
firebaseTools: ["9"]
rxjs: ["7"]
ng: ["12", "next"]
exclude:
# we build with this combination, safely skip
- os: ubuntu-latest
node: 14
# standard configuration
- firebase: 9
ng: 12
fail-fast: false
name: Canary firebase@${{ matrix.firebase }} firebase-tools@${{ matrix.firebaseTools }} ng@${{ matrix.ng }} rxjs@${{ matrix.rxjs}} on ${{ matrix.os }} Node.js ${{ matrix.node }}
steps:
- name: Checkout
uses: actions/checkout@v2
Expand All @@ -133,64 +158,85 @@ jobs:
node-version: ${{ matrix.node }}
check-latest: true
- name: node_modules cache
uses: actions/cache@v2
id: node_modules_cache
uses: actions/cache@v2
with:
path: ./node_modules
key: ${{ runner.os }}-${{ matrix.node }}-9-9-node_modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-${{ matrix.rxjs }}-node_modules-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.node }}-9-9-node_modules-
${{ runner.os }}-${{ matrix.node }}-9-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-${{ matrix.rxjs }}-node_modules-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-${{ matrix.firebaseTools }}-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-${{ matrix.firebase }}-
${{ runner.os }}-${{ matrix.node }}-${{ matrix.ng }}-
${{ runner.os }}-${{ matrix.node }}-
- name: Yarn offline cache
if: steps.node_modules_cache.outputs.cache-hit != 'true'
uses: actions/cache@v2
with:
path: ~/.npm-packages-offline-cache
key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
restore-keys: yarn-offline
- name: Install deps
if: steps.node_modules_cache.outputs.cache-hit != 'true'
- name: Configure yarn
run: |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
yarn install --frozen-lockfile --prefer-offline --ignore-engines
- name: Build
run: yarn build
# Seeing some flakes on windows, skip for now
# https://github.com/angular/angularfire/runs/3593478229
# not just windows
# https://github.com/angular/angularfire/runs/3593535123
# - name: Test
# if: runner.os != 'windows'
# run: yarn test
yarn config set ignore-engines true
- name: Yarn install
if: steps.node_modules_cache.outputs.cache-hit != 'true'
run: yarn install --frozen-lockfile --prefer-offline
- name: Bump deps
run: |
yarn add firebase@${{ matrix.firebase }}
yarn add firebase-tools@${{ matrix.firebaseTools }}
yarn add rxjs@${{ matrix.rxjs }} --prefer-offline
npx ng update @angular/core@${{ matrix.ng }} @angular/cli@${{ matrix.ng }} --allow-dirty --force || true
- name: Firebase emulator cache
uses: actions/cache@v2
with:
path: ~/.cache/firebase/emulators
key: firebase_emulators
- name: Download Artifacts
uses: actions/download-artifact@v2
- name: Relocate Artifacts
run: mv angularfire-${{ github.run_id }} dist
- name: Test node
run: |
yarn build:jasmine
yarn test:node
- name: Test browser
if: matrix.os == 'ubuntu-latest' && matrix.node == '14' && matrix.firebaseTools == '9'
run: yarn test:chrome-headless

headless:
runs-on: ubuntu-latest
needs: build
name: Test firebase@${{ matrix.firebase }} on ${{ matrix.browser }}
contribute:
runs-on: ${{ matrix.os }}
name: Contribute ${{ matrix.os }} on Node.js ${{ matrix.node }}
strategy:
matrix:
firebase: ["9"]
browser: ["chrome", "firefox"]
os: [ ubuntu-latest, macos-latest, windows-latest ]
node: ["12", "14", "16"]
exclude:
# we build with this combination, safely skip
- os: ubuntu-latest
node: 14
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup node
uses: actions/setup-node@v2-beta
with:
node-version: '14'
node-version: ${{ matrix.node }}
check-latest: true
- name: node_modules cache
id: node_modules_cache
uses: actions/cache@v2
id: node_modules_cache
with:
path: ./node_modules
key: ${{ runner.os }}-14-${{ matrix.firebase }}-9-node_modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-${{ matrix.node }}-12-9-9-6-node_modules-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-14-${{ matrix.firebase }}-9-node_modules-
${{ runner.os }}-14-9-
${{ runner.os }}-14-
${{ runner.os }}-${{ matrix.node }}-12-9-9-6-node_modules-
${{ runner.os }}-${{ matrix.node }}-12-9-9-
${{ runner.os }}-${{ matrix.node }}-12-9-
${{ runner.os }}-${{ matrix.node }}-12-
${{ runner.os }}-${{ matrix.node }}-
- name: Yarn offline cache
if: steps.node_modules_cache.outputs.cache-hit != 'true'
uses: actions/cache@v2
Expand All @@ -202,75 +248,27 @@ jobs:
if: steps.node_modules_cache.outputs.cache-hit != 'true'
run: |
yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
yarn config set ignore-engines true
yarn install --frozen-lockfile --prefer-offline
yarn add firebase@${{ matrix.firebase }} --prefer-offline
- name: Firebase emulator cache
uses: actions/cache@v2
with:
path: ~/.cache/firebase/emulators
key: firebase_emulators
- name: 'Download Artifacts'
uses: actions/download-artifact@v2
- name: Run tests
run: |
mv angularfire-${{ github.run_id }} dist
yarn test:${{ matrix.browser }}-headless
- name: Build
run: yarn build
- name: Test
# TODO figure out why tests are flaking
continue-on-error: true
run: yarn test

# safari:
# runs-on: macos-latest
# needs: build
# name: Test firebase@${{ matrix.firebase }} on safari
# strategy:
# matrix:
# firebase: ["beta"]
# fail-fast: false
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# - name: Setup node
# uses: actions/setup-node@v2-beta
# with:
# node-version: '14'
# check-latest: true
# - name: node_modules cache
# id: node_modules_cache
# uses: actions/cache@v2
# with:
# path: ./node_modules
# key: ${{ runner.os }}-14-${{ matrix.firebase }}-9-node_modules-${{ hashFiles('yarn.lock') }}
# restore-keys: |
# ${{ runner.os }}-14-${{ matrix.firebase }}-9-node_modules-
# ${{ runner.os }}-14-${{ matrix.firebase }}-
# ${{ runner.os }}-14-
# - name: Yarn offline cache
# if: steps.node_modules_cache.outputs.cache-hit != 'true'
# uses: actions/cache@v2
# with:
# path: ~/.npm-packages-offline-cache
# key: yarn-offline-${{ hashFiles('**/yarn.lock') }}
# restore-keys: yarn-offline
# - name: Install deps
# if: steps.node_modules_cache.outputs.cache-hit != 'true'
# run: |
# yarn config set yarn-offline-mirror ~/.npm-packages-offline-cache
# yarn install --frozen-lockfile --prefer-offline
# yarn add firebase@${{ matrix.firebase }} --prefer-offline
# - name: Firebase emulator cache
# uses: actions/cache@v2
# with:
# path: ~/.cache/firebase/emulators
# key: firebase_emulators
# - name: 'Download Artifacts'
# uses: actions/download-artifact@v2
# - name: Run tests
# run: |
# mv angularfire-${{ github.run_id }} dist
# yarn test:safari
# Break the branch protection test into a seperate step, so we can manage the matrix more easily
test_and_contribute:
runs-on: ubuntu-latest
name: Branch protection
needs: ['test', 'contribute']
steps:
- run: true

publish:
runs-on: ubuntu-latest
name: Publish (NPM)
needs: ['build', 'test', 'headless']
needs: ['build', 'test']
if: ${{ github.ref == 'refs/heads/master' || github.event_name == 'release' }}
steps:
- name: Setup node
Expand Down
3 changes: 2 additions & 1 deletion src/compat/database/list/snapshot-changes.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ describe('snapshotChanges', () => {
it('should handle multiple subscriptions (hot)', (done) => {
const { snapChanges, ref } = prepareSnapshotChanges();
const sub = snapChanges.subscribe(() => {
}).add(done);
});
sub.add(done);
snapChanges.pipe(take(1)).subscribe(actions => {
const data = actions.map(a => a.payload.val());
expect(data).toEqual(items);
Expand Down
Loading