Skip to content

Enable tests for query rejection. #3088

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

Merged
merged 1 commit into from
May 19, 2020
Merged
Changes from all commits
Commits
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
121 changes: 65 additions & 56 deletions packages/firestore/test/integration/api/database.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -846,69 +846,50 @@ apiDescribe('Database', (persistence: boolean) => {
// client-side validation but fail remotely. May need to wait until we
// have security rules support or something?
// eslint-disable-next-line no-restricted-properties
describe.skip('Listens are rejected remotely:', () => {
//eslint-disable-next-line @typescript-eslint/no-explicit-any
const queryForRejection: firestore.Query = null as any;

describe('Listens are rejected remotely:', () => {
it('will reject listens', () => {
const deferred = new Deferred();
queryForRejection.onSnapshot(
() => {},
(err: Error) => {
expect(err.name).to.exist;
expect(err.message).to.exist;
deferred.resolve();
}
);
return deferred.promise;
return withTestDb(persistence, async db => {
const deferred = new Deferred();
const queryForRejection = db.collection('a/__badpath__/b');
queryForRejection.onSnapshot(
() => {},
(err: Error) => {
expect(err.name).to.exist;
expect(err.message).to.exist;
deferred.resolve();
}
);
await deferred.promise;
});
});

it('will reject same listens twice in a row', () => {
const deferred = new Deferred();
queryForRejection.onSnapshot(
() => {},
(err: Error) => {
expect(err.name).to.exist;
expect(err.message).to.exist;
queryForRejection.onSnapshot(
() => {},
(err2: Error) => {
expect(err2.name).to.exist;
expect(err2.message).to.exist;
deferred.resolve();
}
);
}
);
return deferred.promise;
});

it('will reject gets', () => {
return queryForRejection.get().then(
() => {
expect.fail('Promise resolved even though error was expected.');
},
err => {
expect(err.name).to.exist;
expect(err.message).to.exist;
}
);
});

it('will reject gets twice in a row', () => {
return queryForRejection
.get()
.then(
() => {
expect.fail('Promise resolved even though error was expected.');
},
err => {
return withTestDb(persistence, async db => {
const deferred = new Deferred();
const queryForRejection = db.collection('a/__badpath__/b');
queryForRejection.onSnapshot(
() => {},
(err: Error) => {
expect(err.name).to.exist;
expect(err.message).to.exist;
queryForRejection.onSnapshot(
() => {},
(err2: Error) => {
expect(err2.name).to.exist;
expect(err2.message).to.exist;
deferred.resolve();
}
);
}
)
.then(() => queryForRejection.get())
.then(
);
await deferred.promise;
});
});

it('will reject gets', () => {
return withTestDb(persistence, async db => {
const queryForRejection = db.collection('a/__badpath__/b');
await queryForRejection.get().then(
() => {
expect.fail('Promise resolved even though error was expected.');
},
Expand All @@ -917,6 +898,34 @@ apiDescribe('Database', (persistence: boolean) => {
expect(err.message).to.exist;
}
);
});
});

it('will reject gets twice in a row', () => {
return withTestDb(persistence, async db => {
const queryForRejection = db.collection('a/__badpath__/b');
return queryForRejection
.get()
.then(
() => {
expect.fail('Promise resolved even though error was expected.');
},
err => {
expect(err.name).to.exist;
expect(err.message).to.exist;
}
)
.then(() => queryForRejection.get())
.then(
() => {
expect.fail('Promise resolved even though error was expected.');
},
err => {
expect(err.name).to.exist;
expect(err.message).to.exist;
}
);
});
});
});

Expand Down