32 lines
1.4 KiB
TypeScript
32 lines
1.4 KiB
TypeScript
|
/// <reference path="../typings/node/node.d.ts" />
|
||
|
/// <reference path="../typings/jasmine/jasmine.d.ts" />
|
||
|
|
||
|
import * as ts from 'typescript';
|
||
|
import {Symbols} from './symbols';
|
||
|
import {MockSymbol, MockVariableDeclaration} from './typescript.mock';
|
||
|
|
||
|
describe('Symbols', () => {
|
||
|
let symbols: Symbols;
|
||
|
const someValue = 'some-value';
|
||
|
const someSymbol = MockSymbol.of('some-symbol');
|
||
|
const aliasSymbol = new MockSymbol('some-symbol', someSymbol.getDeclarations()[0]);
|
||
|
const missingSymbol = MockSymbol.of('some-other-symbol');
|
||
|
|
||
|
beforeEach(() => symbols = new Symbols());
|
||
|
|
||
|
it('should be able to add a symbol', () => symbols.set(someSymbol, someValue));
|
||
|
|
||
|
beforeEach(() => symbols.set(someSymbol, someValue));
|
||
|
|
||
|
it('should be able to `has` a symbol', () => expect(symbols.has(someSymbol)).toBeTruthy());
|
||
|
it('should be able to `get` a symbol value',
|
||
|
() => expect(symbols.get(someSymbol)).toBe(someValue));
|
||
|
it('should be able to `has` an alias symbol',
|
||
|
() => expect(symbols.has(aliasSymbol)).toBeTruthy());
|
||
|
it('should be able to `get` a symbol value',
|
||
|
() => expect(symbols.get(aliasSymbol)).toBe(someValue));
|
||
|
it('should be able to determine symbol is missing',
|
||
|
() => expect(symbols.has(missingSymbol)).toBeFalsy());
|
||
|
it('should return undefined from `get` for a missing symbol',
|
||
|
() => expect(symbols.get(missingSymbol)).toBeUndefined());
|
||
|
});
|