mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
add definition and test for merge-descriptor
This commit is contained in:
parent
62eedc3121
commit
f58cfb989f
35
merge-descriptors/merge-descriptors-tests.ts
Normal file
35
merge-descriptors/merge-descriptors-tests.ts
Normal file
@ -0,0 +1,35 @@
|
||||
/// <reference path="merge-descriptors.d.ts"/>
|
||||
import mixin = require('merge-descriptors');
|
||||
|
||||
function testAssertion(condition: boolean, errorMessage: string) {
|
||||
if (!condition) {
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
interface IMergedObject {
|
||||
InSrc?: string;
|
||||
name: string;
|
||||
InTarget: string;
|
||||
}
|
||||
|
||||
var src = {
|
||||
InSrc: 'src',
|
||||
get name(): string {
|
||||
return 'from src name';
|
||||
}
|
||||
}
|
||||
|
||||
var target: IMergedObject = { name: 'my target name', InTarget: 'target' };
|
||||
|
||||
var target2 = mixin(target, src, true);
|
||||
|
||||
console.log(JSON.stringify(target));
|
||||
|
||||
testAssertion(target2 === target, "Returned object should refer to input [destination] object");
|
||||
testAssertion(target.name === 'from src name', "[redfine]=true, source member will overwrite destination member");
|
||||
testAssertion(target.InTarget === 'target', "overwrite do not affect members only in [destination]");
|
||||
testAssertion(target['InSrc'] === 'src', "members from [source] must be copied to [destination]");
|
||||
|
||||
var nameProperty:PropertyDescriptor = Object.getOwnPropertyDescriptor(target, "name");
|
||||
testAssertion(nameProperty.set === undefined, "member descriptor must be overwritten");
|
||||
1
merge-descriptors/merge-descriptors-tests.ts.tscparams
Normal file
1
merge-descriptors/merge-descriptors-tests.ts.tscparams
Normal file
@ -0,0 +1 @@
|
||||
--noImplicitAny --module commonjs --target es5
|
||||
13
merge-descriptors/merge-descriptors.d.ts
vendored
Normal file
13
merge-descriptors/merge-descriptors.d.ts
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
// Type definitions for merge-descriptors
|
||||
// Project: https://github.com/component/merge-descriptors
|
||||
// Definitions by: Zhiyuan Wang <https://github.com/danny8002/>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
declare module 'merge-descriptors' {
|
||||
|
||||
function merge(destination: Object, source: Object): Object;
|
||||
|
||||
function merge(destination: Object, source: Object, redefine: boolean): Object;
|
||||
|
||||
export = merge;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user