Skip to content

Commit

Permalink
test(NODE-3684): skip tests on serverless
Browse files Browse the repository at this point in the history
  • Loading branch information
durran committed Nov 2, 2021
1 parent ec58e76 commit 41ea187
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 18 deletions.
24 changes: 12 additions & 12 deletions src/operations/execute_operation.ts
Expand Up @@ -17,7 +17,7 @@ import type { Topology } from '../sdam/topology';
import type { ClientSession } from '../sessions';
import type { Document } from '../bson';
import { supportsRetryableWrites } from '../utils';
import { secondaryWritableServerSelector } from '../sdam/server_selection';
import { secondaryWritableServerSelector, ServerSelector } from '../sdam/server_selection';

const MMAPv1_RETRY_WRITES_ERROR_CODE = MONGODB_ERROR_CODES.IllegalOperation;
const MMAPv1_RETRY_WRITES_ERROR_MESSAGE =
Expand Down Expand Up @@ -151,6 +151,16 @@ function executeWithServerSelection(
session.unpin();
}

let selector: ReadPreference | ServerSelector;

// If operation should try to write to secondary use the custom server selector
// otherwise provide the read preference.
if (operation.trySecondaryWrite) {
selector = secondaryWritableServerSelector(topology.commonWireVersion, readPreference);
} else {
selector = readPreference;
}

const serverSelectionOptions = { session };
function callbackWithRetry(err?: any, result?: any) {
if (err == null) {
Expand Down Expand Up @@ -182,16 +192,6 @@ function executeWithServerSelection(
return;
}

let selector;

// If operation should try to write to secondary use the custom server selector
// otherwise provide the read preference.
if (operation.trySecondaryWrite) {
selector = secondaryWritableServerSelector(topology.commonWireVersion, readPreference);
} else {
selector = readPreference;
}

// select a new server, and attempt to retry the operation
topology.selectServer(selector, serverSelectionOptions, (e?: any, server?: any) => {
if (
Expand Down Expand Up @@ -238,7 +238,7 @@ function executeWithServerSelection(
}

// select a server, and execute the operation against it
topology.selectServer(readPreference, serverSelectionOptions, (err?: any, server?: any) => {
topology.selectServer(selector, serverSelectionOptions, (err?: any, server?: any) => {
if (err) {
callback(err);
return;
Expand Down
2 changes: 2 additions & 0 deletions src/sdam/server_selection.ts
Expand Up @@ -43,6 +43,8 @@ export function secondaryWritableServerSelector(
// If server version >= 5.0...
// - If read preference is supplied, use that.
// - If no read preference is supplied, use primary.
/* eslint no-console: 0 */
console.log('select', readPreference, wireVersion);
if (!readPreference || (wireVersion && wireVersion < MIN_SECONDARY_WRITE_WIRE_VERSION)) {
return readPreferenceServerSelector(ReadPreference.primary);
}
Expand Down
8 changes: 5 additions & 3 deletions test/spec/crud/unified/aggregate-write-readPreference.json
@@ -1,6 +1,6 @@
{
"description": "aggregate-write-readPreference",
"schemaVersion": "1.3",
"schemaVersion": "1.4",
"runOnRequirements": [
{
"minServerVersion": "3.6",
Expand Down Expand Up @@ -90,7 +90,8 @@
"description": "Aggregate with $out includes read preference for 5.0+ server",
"runOnRequirements": [
{
"minServerVersion": "5.0"
"minServerVersion": "5.0",
"serverless": "forbid"
}
],
"operations": [
Expand Down Expand Up @@ -181,7 +182,8 @@
"runOnRequirements": [
{
"minServerVersion": "4.2",
"maxServerVersion": "4.4.99"
"maxServerVersion": "4.4.99",
"serverless": "forbid"
}
],
"operations": [
Expand Down
4 changes: 3 additions & 1 deletion test/spec/crud/unified/aggregate-write-readPreference.yml
@@ -1,6 +1,6 @@
description: aggregate-write-readPreference

schemaVersion: '1.3'
schemaVersion: '1.4'

runOnRequirements:
# 3.6+ non-standalone is needed to utilize $readPreference in OP_MSG
Expand Down Expand Up @@ -59,6 +59,7 @@ tests:
- description: "Aggregate with $out includes read preference for 5.0+ server"
runOnRequirements:
- minServerVersion: "5.0"
serverless: "forbid"
operations:
- object: *collection0
name: aggregate
Expand Down Expand Up @@ -91,6 +92,7 @@ tests:
# drivers may avoid inheriting a client-level read concern for pre-4.2.
- minServerVersion: "4.2"
maxServerVersion: "4.4.99"
serverless: "forbid"
operations:
- object: *collection0
name: aggregate
Expand Down
6 changes: 4 additions & 2 deletions test/spec/crud/unified/db-aggregate-write-readPreference.json
Expand Up @@ -64,7 +64,8 @@
"description": "Database-level aggregate with $out includes read preference for 5.0+ server",
"runOnRequirements": [
{
"minServerVersion": "5.0"
"minServerVersion": "5.0",
"serverless": "forbid"
}
],
"operations": [
Expand Down Expand Up @@ -158,7 +159,8 @@
"runOnRequirements": [
{
"minServerVersion": "4.2",
"maxServerVersion": "4.4.99"
"maxServerVersion": "4.4.99",
"serverless": "forbid"
}
],
"operations": [
Expand Down
2 changes: 2 additions & 0 deletions test/spec/crud/unified/db-aggregate-write-readPreference.yml
Expand Up @@ -52,6 +52,7 @@ tests:
- description: "Database-level aggregate with $out includes read preference for 5.0+ server"
runOnRequirements:
- minServerVersion: "5.0"
serverless: "forbid"
operations:
- object: *database0
name: aggregate
Expand Down Expand Up @@ -85,6 +86,7 @@ tests:
# drivers may avoid inheriting a client-level read concern for pre-4.2.
- minServerVersion: "4.2"
maxServerVersion: "4.4.99"
serverless: "forbid"
operations:
- object: *database0
name: aggregate
Expand Down

0 comments on commit 41ea187

Please sign in to comment.