/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import * as ts from 'typescript'; import {unwrapExpression} from '../src/util'; describe('ngtsc annotation utilities', () => { describe('unwrapExpression', () => { const obj = ts.createObjectLiteral(); it('should pass through an ObjectLiteralExpression', () => { expect(unwrapExpression(obj)).toBe(obj); }); it('should unwrap an ObjectLiteralExpression in parentheses', () => { const wrapped = ts.createParen(obj); expect(unwrapExpression(wrapped)).toBe(obj); }); it('should unwrap an ObjectLiteralExpression with a type cast', () => { const cast = ts.createAsExpression(obj, ts.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword)); expect(unwrapExpression(cast)).toBe(obj); }); it('should unwrap an ObjectLiteralExpression with a type cast in parentheses', () => { const cast = ts.createAsExpression(obj, ts.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword)); const wrapped = ts.createParen(cast); expect(unwrapExpression(wrapped)).toBe(obj); }); }); });