@@ -14,6 +14,7 @@ import { getWrapEnumsTransformer } from './wrap-enums';
14
14
const transform = ( content : string ) => transformJavascript (
15
15
{ content, getTransforms : [ getWrapEnumsTransformer ] } ) . content ;
16
16
17
+ // tslint:disable-next-line:no-big-function
17
18
describe ( 'wrap-enums' , ( ) => {
18
19
it ( 'wraps ts 2.2 enums in IIFE' , ( ) => {
19
20
const input = tags . stripIndent `
@@ -37,7 +38,7 @@ describe('wrap-enums', () => {
37
38
expect ( tags . oneLine `${ transform ( input ) } ` ) . toEqual ( tags . oneLine `${ output } ` ) ;
38
39
} ) ;
39
40
40
- it ( 'wraps ts 2.3 - 2.6 enums in IIFE' , ( ) => {
41
+ it ( 'wraps ts > 2.3 enums in IIFE' , ( ) => {
41
42
const input = tags . stripIndent `
42
43
export var ChangeDetectionStrategy;
43
44
(function (ChangeDetectionStrategy) {
@@ -56,7 +57,7 @@ describe('wrap-enums', () => {
56
57
expect ( tags . oneLine `${ transform ( input ) } ` ) . toEqual ( tags . oneLine `${ output } ` ) ;
57
58
} ) ;
58
59
59
- it ( 'wraps ts 2.3 - 2.6 enums in IIFE, even if they have funny numbers' , ( ) => {
60
+ it ( 'wraps ts > 2.3 enums in IIFE, even if they have funny numbers' , ( ) => {
60
61
const input = tags . stripIndent `
61
62
export var AnimatorControlState;
62
63
(function (AnimatorControlState) {
@@ -79,6 +80,61 @@ describe('wrap-enums', () => {
79
80
expect ( tags . oneLine `${ transform ( input ) } ` ) . toEqual ( tags . oneLine `${ output } ` ) ;
80
81
} ) ;
81
82
83
+ it ( 'wraps ts >2.3 enums in IIFE, even if they were renamed due to scope hoisting' , ( ) => {
84
+ const input = tags . stripIndent `
85
+ var TokenType$1;
86
+ (function (TokenType) {
87
+ TokenType[TokenType["TAG_OPEN_START"] = 0] = "TAG_OPEN_START";
88
+ TokenType[TokenType["TAG_OPEN_END"] = 1] = "TAG_OPEN_END";
89
+ TokenType[TokenType["TAG_OPEN_END_VOID"] = 2] = "TAG_OPEN_END_VOID";
90
+ TokenType[TokenType["TAG_CLOSE"] = 3] = "TAG_CLOSE";
91
+ TokenType[TokenType["TEXT"] = 4] = "TEXT";
92
+ TokenType[TokenType["ESCAPABLE_RAW_TEXT"] = 5] = "ESCAPABLE_RAW_TEXT";
93
+ TokenType[TokenType["RAW_TEXT"] = 6] = "RAW_TEXT";
94
+ TokenType[TokenType["COMMENT_START"] = 7] = "COMMENT_START";
95
+ TokenType[TokenType["COMMENT_END"] = 8] = "COMMENT_END";
96
+ TokenType[TokenType["CDATA_START"] = 9] = "CDATA_START";
97
+ TokenType[TokenType["CDATA_END"] = 10] = "CDATA_END";
98
+ TokenType[TokenType["ATTR_NAME"] = 11] = "ATTR_NAME";
99
+ TokenType[TokenType["ATTR_VALUE"] = 12] = "ATTR_VALUE";
100
+ TokenType[TokenType["DOC_TYPE"] = 13] = "DOC_TYPE";
101
+ TokenType[TokenType["EXPANSION_FORM_START"] = 14] = "EXPANSION_FORM_START";
102
+ TokenType[TokenType["EXPANSION_CASE_VALUE"] = 15] = "EXPANSION_CASE_VALUE";
103
+ TokenType[TokenType["EXPANSION_CASE_EXP_START"] = 16] = "EXPANSION_CASE_EXP_START";
104
+ TokenType[TokenType["EXPANSION_CASE_EXP_END"] = 17] = "EXPANSION_CASE_EXP_END";
105
+ TokenType[TokenType["EXPANSION_FORM_END"] = 18] = "EXPANSION_FORM_END";
106
+ TokenType[TokenType["EOF"] = 19] = "EOF";
107
+ })(TokenType$1 || (TokenType$1 = {}));
108
+ ` ;
109
+ const output = tags . stripIndent `
110
+ var TokenType$1 = /*@__PURE__*/ (function (TokenType) {
111
+ TokenType[TokenType["TAG_OPEN_START"] = 0] = "TAG_OPEN_START";
112
+ TokenType[TokenType["TAG_OPEN_END"] = 1] = "TAG_OPEN_END";
113
+ TokenType[TokenType["TAG_OPEN_END_VOID"] = 2] = "TAG_OPEN_END_VOID";
114
+ TokenType[TokenType["TAG_CLOSE"] = 3] = "TAG_CLOSE";
115
+ TokenType[TokenType["TEXT"] = 4] = "TEXT";
116
+ TokenType[TokenType["ESCAPABLE_RAW_TEXT"] = 5] = "ESCAPABLE_RAW_TEXT";
117
+ TokenType[TokenType["RAW_TEXT"] = 6] = "RAW_TEXT";
118
+ TokenType[TokenType["COMMENT_START"] = 7] = "COMMENT_START";
119
+ TokenType[TokenType["COMMENT_END"] = 8] = "COMMENT_END";
120
+ TokenType[TokenType["CDATA_START"] = 9] = "CDATA_START";
121
+ TokenType[TokenType["CDATA_END"] = 10] = "CDATA_END";
122
+ TokenType[TokenType["ATTR_NAME"] = 11] = "ATTR_NAME";
123
+ TokenType[TokenType["ATTR_VALUE"] = 12] = "ATTR_VALUE";
124
+ TokenType[TokenType["DOC_TYPE"] = 13] = "DOC_TYPE";
125
+ TokenType[TokenType["EXPANSION_FORM_START"] = 14] = "EXPANSION_FORM_START";
126
+ TokenType[TokenType["EXPANSION_CASE_VALUE"] = 15] = "EXPANSION_CASE_VALUE";
127
+ TokenType[TokenType["EXPANSION_CASE_EXP_START"] = 16] = "EXPANSION_CASE_EXP_START";
128
+ TokenType[TokenType["EXPANSION_CASE_EXP_END"] = 17] = "EXPANSION_CASE_EXP_END";
129
+ TokenType[TokenType["EXPANSION_FORM_END"] = 18] = "EXPANSION_FORM_END";
130
+ TokenType[TokenType["EOF"] = 19] = "EOF";
131
+ return TokenType;
132
+ })({});
133
+ ` ;
134
+
135
+ expect ( tags . oneLine `${ transform ( input ) } ` ) . toEqual ( tags . oneLine `${ output } ` ) ;
136
+ } ) ;
137
+
82
138
it ( 'wraps tsickle enums in IIFE' , ( ) => {
83
139
const input = tags . stripIndent `
84
140
/** @enum {number} */
0 commit comments