mirror of
https://github.com/grpc/grpc-node.git
synced 2025-12-08 18:23:54 +00:00
Modifying call credentials to reflect metadata changes
This commit is contained in:
parent
9403167d5f
commit
ae20e248ea
@ -63,15 +63,10 @@ class CallCredentialsImpl {
|
||||
cb(err || new Error('Unknown error'));
|
||||
return;
|
||||
} else {
|
||||
const result = Metadata.createMetadata();
|
||||
const result: Metadata = new Metadata();
|
||||
metadataArray.forEach((metadata) => {
|
||||
if (metadata) {
|
||||
const metadataObj = metadata.getMap();
|
||||
Object.keys(metadataObj).forEach((key) => {
|
||||
metadataObj[key].forEach((value) => {
|
||||
result.add(key, value);
|
||||
});
|
||||
});
|
||||
result.merge(metadata);
|
||||
}
|
||||
});
|
||||
cb(null, result);
|
||||
|
||||
@ -1,28 +1,7 @@
|
||||
import { Metadata } from '../src/metadata';
|
||||
import { CallCredentials, CallMetadataGenerator } from '../src/call-credentials';
|
||||
import { mockFunction } from './common';
|
||||
import * as assert from 'assert';
|
||||
|
||||
class MetadataMock extends Metadata {
|
||||
constructor(private obj: { [propName: string]: Array<string> } = {}) {
|
||||
super();
|
||||
}
|
||||
|
||||
add(key: string, value: string) {
|
||||
if (!this.obj[key]) {
|
||||
this.obj[key] = [value];
|
||||
} else {
|
||||
this.obj[key].push(value);
|
||||
}
|
||||
}
|
||||
clone() { return new MetadataMock(Object.create(this.obj)); };
|
||||
get(key: string) { return this.obj[key]; }
|
||||
getMap() { return this.obj; }
|
||||
set() { mockFunction() }
|
||||
remove() { mockFunction() }
|
||||
}
|
||||
Metadata.createMetadata = () => new MetadataMock();
|
||||
|
||||
// Returns a Promise that resolves to an object containing either an error or
|
||||
// metadata
|
||||
function generateMetadata(
|
||||
@ -40,7 +19,7 @@ function generateMetadata(
|
||||
|
||||
function makeGenerator(props: Array<string>): CallMetadataGenerator {
|
||||
return (options: { [propName: string]: string }, cb) => {
|
||||
const metadata: Metadata = new MetadataMock();
|
||||
const metadata: Metadata = new Metadata();
|
||||
props.forEach((prop) => {
|
||||
if (options[prop]) {
|
||||
metadata.add(prop, options[prop]);
|
||||
@ -52,7 +31,7 @@ function makeGenerator(props: Array<string>): CallMetadataGenerator {
|
||||
|
||||
function makeAfterMsElapsedGenerator(ms: number): CallMetadataGenerator {
|
||||
return (_options, cb) => {
|
||||
const metadata = new MetadataMock();
|
||||
const metadata = new Metadata();
|
||||
metadata.add('msElapsed', `${ms}`);
|
||||
setTimeout(() => cb(null, metadata), ms);
|
||||
};
|
||||
@ -101,9 +80,7 @@ describe('CallCredentials', () => {
|
||||
assert.ok(!err);
|
||||
assert.ok(metadata);
|
||||
if (metadata) {
|
||||
assert.deepEqual(metadata.getMap(), {
|
||||
name: ['foo']
|
||||
});
|
||||
assert.deepEqual(metadata.get('name'), ['foo']);
|
||||
}
|
||||
}
|
||||
);
|
||||
@ -153,9 +130,7 @@ describe('CallCredentials', () => {
|
||||
assert.ok(!err);
|
||||
assert.ok(metadata);
|
||||
if (metadata) {
|
||||
assert.deepEqual(metadata.getMap(), {
|
||||
msElapsed: expected
|
||||
});
|
||||
assert.deepEqual(metadata.get('msElapsed'), expected);
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user