Skip to content

Commit

Permalink
test(plugin-mongodb): add tests for mongodb plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
vmarchaud committed Aug 21, 2019
1 parent 0af967e commit 8b746cb
Show file tree
Hide file tree
Showing 8 changed files with 363 additions and 5 deletions.
14 changes: 14 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
version: 2

test_env: &test_env
OPENCENSUS_MONGODB_TESTS: 1

mongo_service: &mongo_service
image: mongo

node_unit_tests: &node_unit_tests
steps:
- checkout
Expand Down Expand Up @@ -68,18 +74,26 @@ jobs:
node8:
docker:
- image: node:8
environment: *test_env
- *mongo_service
<<: *node_unit_tests
node10:
docker:
- image: node:10
environment: *test_env
- *mongo_service
<<: *node_unit_tests
node11:
docker:
- image: node:11
environment: *test_env
- *mongo_service
<<: *node_unit_tests
node12:
docker:
- image: node:12
environment: *test_env
- *mongo_service
<<: *node_unit_tests
node12-browsers:
docker:
Expand Down
41 changes: 39 additions & 2 deletions packages/opentelemetry-node-tracer/src/NodeTracer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,45 @@
* limitations under the License.
*/

import { BasicTracer, BasicTracerConfig } from '@opentelemetry/basic-tracer';
import { BasicTracer } from '@opentelemetry/basic-tracer';
import { AsyncHooksScopeManager } from '@opentelemetry/scope-async-hooks';
import { ScopeManager } from '@opentelemetry/scope-base';
import {
Attributes,
BinaryFormat,
HttpTextFormat,
Logger,
Sampler,
} from '@opentelemetry/types';

// @todo: Find a way to re-use BasicTracerConfig here
export declare interface NodeTracerConfig {
/**
* Binary formatter which can serialize/deserialize Spans.
*/
binaryFormat?: BinaryFormat;
/**
* Attributed that will be applied on every span created by Tracer.
* Useful to add infrastructure and environment information to your spans.
*/
defaultAttributes?: Attributes;
/**
* HTTP text formatter which can inject/extract Spans.
*/
httpTextFormat?: HttpTextFormat;
/**
* User provided logger.
*/
logger?: Logger;
/**
* Sampler determines if a span should be recorded or should be a NoopSpan.
*/
sampler?: Sampler;
/**
* Scope manager keeps context across in-process operations.
*/
scopeManager?: ScopeManager
};

/**
* This class represents a node tracer with `async_hooks` module.
Expand All @@ -24,7 +61,7 @@ export class NodeTracer extends BasicTracer {
/**
* Constructs a new Tracer instance.
*/
constructor(config: BasicTracerConfig) {
constructor(config: NodeTracerConfig) {
super(
Object.assign({}, { scopeManager: new AsyncHooksScopeManager() }, config)
);
Expand Down
3 changes: 3 additions & 0 deletions packages/opentelemetry-node-tracer/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/

export * from './NodeTracer';
export { Span } from '@opentelemetry/basic-tracer'
3 changes: 2 additions & 1 deletion packages/opentelemetry-plugin-mongodb/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"types": "build/src/index.d.ts",
"repository": "open-telemetry/opentelemetry-js",
"scripts": {
"test": "nyc ts-mocha -p tsconfig.json test/**/*.ts",
"test": "nyc ts-mocha -p tsconfig.json test/*.ts",
"tdd": "yarn test -- --watch-extensions ts --watch",
"clean": "rimraf build/*",
"check": "gts check",
Expand Down Expand Up @@ -45,6 +45,7 @@
"codecov": "^3.5.0",
"gts": "^1.1.0",
"mocha": "^6.2.0",
"mongodb": "^3.3.0",
"nyc": "^14.1.1",
"ts-mocha": "^6.0.0",
"ts-node": "^8.3.0",
Expand Down
2 changes: 2 additions & 0 deletions packages/opentelemetry-plugin-mongodb/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/

export * from './mongodb';
4 changes: 2 additions & 2 deletions packages/opentelemetry-plugin-mongodb/src/mongodb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ interface MongoInternalCommand {
ismaster: boolean;
}

/** MongoDB instrumentation plugin for Opencensus */
/** MongoDB instrumentation plugin for OpenTelemetry */
export class MongoDBPlugin extends BasePlugin<MongoDB> {
private readonly SERVER_FNS = ['insert', 'update', 'remove', 'auth'];
private readonly SERVER_FNS = ['insert', 'update', 'remove'];
private readonly CURSOR_FNS_FIRST = ['_find', '_getmore'];
protected _logger!: Logger;
protected readonly _tracer!: Tracer;
Expand Down
Loading

0 comments on commit 8b746cb

Please sign in to comment.