xref: /aosp_15_r20/external/chromium-trace/catapult/common/eslint/tests/catapult-camelcase.js (revision 1fa4b3da657c0e9ad43c0220bacf9731820715a5)
1*1fa4b3daSHector Dearman// Copyright 2016 The Chromium Authors. All rights reserved.
2*1fa4b3daSHector Dearman// Use of this source code is governed by a BSD-style license that can be
3*1fa4b3daSHector Dearman// found in the LICENSE file.
4*1fa4b3daSHector Dearman/* eslint-disable */
5*1fa4b3daSHector Dearman
6*1fa4b3daSHector Dearman/**
7*1fa4b3daSHector Dearman * @fileoverview Tests for camelcase rule.
8*1fa4b3daSHector Dearman * @author Nicholas C. Zakas
9*1fa4b3daSHector Dearman */
10*1fa4b3daSHector Dearman
11*1fa4b3daSHector Dearman'use strict';
12*1fa4b3daSHector Dearman
13*1fa4b3daSHector Dearman//------------------------------------------------------------------------------
14*1fa4b3daSHector Dearman// Requirements
15*1fa4b3daSHector Dearman//------------------------------------------------------------------------------
16*1fa4b3daSHector Dearman
17*1fa4b3daSHector Dearmanvar rule = require("../rules/catapult-camelcase"),
18*1fa4b3daSHector Dearman    RuleTester = require("../../node_runner/node_runner/node_modules/eslint/lib/testers/rule-tester");
19*1fa4b3daSHector Dearman
20*1fa4b3daSHector Dearman//------------------------------------------------------------------------------
21*1fa4b3daSHector Dearman// Tests
22*1fa4b3daSHector Dearman//------------------------------------------------------------------------------
23*1fa4b3daSHector Dearman
24*1fa4b3daSHector Dearmanvar ruleTester = new RuleTester();
25*1fa4b3daSHector Dearman
26*1fa4b3daSHector DearmanruleTester.run("camelcase", rule, {
27*1fa4b3daSHector Dearman    valid: [
28*1fa4b3daSHector Dearman        "firstName = \"Nicholas\"",
29*1fa4b3daSHector Dearman        "FIRST_NAME = \"Nicholas\"",
30*1fa4b3daSHector Dearman        "__myPrivateVariable = \"Patrick\"",
31*1fa4b3daSHector Dearman        "myPrivateVariable_ = \"Patrick\"",
32*1fa4b3daSHector Dearman        "function doSomething(){}",
33*1fa4b3daSHector Dearman        "do_something()",
34*1fa4b3daSHector Dearman        "foo.do_something()",
35*1fa4b3daSHector Dearman        "var foo = bar.baz_boom;",
36*1fa4b3daSHector Dearman        "var foo = bar.baz_boom.something;",
37*1fa4b3daSHector Dearman        "foo.boom_pow.qux = bar.baz_boom.something;",
38*1fa4b3daSHector Dearman        "if (bar.baz_boom) {}",
39*1fa4b3daSHector Dearman        "var obj = { key: foo.bar_baz };",
40*1fa4b3daSHector Dearman        "var arr = [foo.bar_baz];",
41*1fa4b3daSHector Dearman        "[foo.bar_baz]",
42*1fa4b3daSHector Dearman        "var arr = [foo.bar_baz.qux];",
43*1fa4b3daSHector Dearman        "[foo.bar_baz.nesting]",
44*1fa4b3daSHector Dearman        "if (foo.bar_baz === boom.bam_pow) { [foo.baz_boom] }",
45*1fa4b3daSHector Dearman        // These tests are for Catapult-specific exceptions.
46*1fa4b3daSHector Dearman        "opt_firstName = \"Nicholas\"",
47*1fa4b3daSHector Dearman        "g_firstName = \"Nicholas\"",
48*1fa4b3daSHector Dearman        "sizeInBytes_smallerIsBetter = \"Nicholas\"",
49*1fa4b3daSHector Dearman        "sizeInBytes_biggerIsBetter = \"Nicholas\"",
50*1fa4b3daSHector Dearman        {
51*1fa4b3daSHector Dearman            code: "var o = {key: 1}",
52*1fa4b3daSHector Dearman            options: [{properties: "always"}]
53*1fa4b3daSHector Dearman        },
54*1fa4b3daSHector Dearman        {
55*1fa4b3daSHector Dearman            code: "var o = {bar_baz: 1}",
56*1fa4b3daSHector Dearman            options: [{properties: "never"}]
57*1fa4b3daSHector Dearman        },
58*1fa4b3daSHector Dearman        {
59*1fa4b3daSHector Dearman            code: "obj.a_b = 2;",
60*1fa4b3daSHector Dearman            options: [{properties: "never"}]
61*1fa4b3daSHector Dearman        },
62*1fa4b3daSHector Dearman        {
63*1fa4b3daSHector Dearman            code: "var obj = {\n a_a: 1 \n};\n obj.a_b = 2;",
64*1fa4b3daSHector Dearman            options: [{properties: "never"}]
65*1fa4b3daSHector Dearman        },
66*1fa4b3daSHector Dearman        {
67*1fa4b3daSHector Dearman            code: "obj.foo_bar = function(){};",
68*1fa4b3daSHector Dearman            options: [{properties: "never"}]
69*1fa4b3daSHector Dearman        },
70*1fa4b3daSHector Dearman        {
71*1fa4b3daSHector Dearman            code: "var { category_id: category } = query;",
72*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6 }
73*1fa4b3daSHector Dearman        },
74*1fa4b3daSHector Dearman        {
75*1fa4b3daSHector Dearman            code: "var { category_id: category } = query;",
76*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6 },
77*1fa4b3daSHector Dearman            options: [{properties: "never"}]
78*1fa4b3daSHector Dearman        },
79*1fa4b3daSHector Dearman        {
80*1fa4b3daSHector Dearman            code: "import { camelCased } from \"external module\";",
81*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" }
82*1fa4b3daSHector Dearman        },
83*1fa4b3daSHector Dearman        {
84*1fa4b3daSHector Dearman            code: "import { no_camelcased as camelCased } from \"external-module\";",
85*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" }
86*1fa4b3daSHector Dearman        },
87*1fa4b3daSHector Dearman        {
88*1fa4b3daSHector Dearman            code: "import { no_camelcased as camelCased, anoterCamelCased } from \"external-module\";",
89*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" }
90*1fa4b3daSHector Dearman        }
91*1fa4b3daSHector Dearman    ],
92*1fa4b3daSHector Dearman    invalid: [
93*1fa4b3daSHector Dearman        {
94*1fa4b3daSHector Dearman            code: "first_name = \"Nicholas\"",
95*1fa4b3daSHector Dearman            errors: [
96*1fa4b3daSHector Dearman                {
97*1fa4b3daSHector Dearman                    message: "Identifier 'first_name' is not in camel case.",
98*1fa4b3daSHector Dearman                    type: "Identifier"
99*1fa4b3daSHector Dearman                }
100*1fa4b3daSHector Dearman            ]
101*1fa4b3daSHector Dearman        },
102*1fa4b3daSHector Dearman        {
103*1fa4b3daSHector Dearman            code: "__private_first_name = \"Patrick\"",
104*1fa4b3daSHector Dearman            errors: [
105*1fa4b3daSHector Dearman                {
106*1fa4b3daSHector Dearman                    message: "Identifier '__private_first_name' is not in camel case.",
107*1fa4b3daSHector Dearman                    type: "Identifier"
108*1fa4b3daSHector Dearman                }
109*1fa4b3daSHector Dearman            ]
110*1fa4b3daSHector Dearman        },
111*1fa4b3daSHector Dearman        {
112*1fa4b3daSHector Dearman            code: "function foo_bar(){}",
113*1fa4b3daSHector Dearman            errors: [
114*1fa4b3daSHector Dearman                {
115*1fa4b3daSHector Dearman                    message: "Identifier 'foo_bar' is not in camel case.",
116*1fa4b3daSHector Dearman                    type: "Identifier"
117*1fa4b3daSHector Dearman                }
118*1fa4b3daSHector Dearman            ]
119*1fa4b3daSHector Dearman        },
120*1fa4b3daSHector Dearman        {
121*1fa4b3daSHector Dearman            code: "obj.foo_bar = function(){};",
122*1fa4b3daSHector Dearman            errors: [
123*1fa4b3daSHector Dearman                {
124*1fa4b3daSHector Dearman                    message: "Identifier 'foo_bar' is not in camel case.",
125*1fa4b3daSHector Dearman                    type: "Identifier"
126*1fa4b3daSHector Dearman                }
127*1fa4b3daSHector Dearman            ]
128*1fa4b3daSHector Dearman        },
129*1fa4b3daSHector Dearman        {
130*1fa4b3daSHector Dearman            code: "bar_baz.foo = function(){};",
131*1fa4b3daSHector Dearman            errors: [
132*1fa4b3daSHector Dearman                {
133*1fa4b3daSHector Dearman                    message: "Identifier 'bar_baz' is not in camel case.",
134*1fa4b3daSHector Dearman                    type: "Identifier"
135*1fa4b3daSHector Dearman                }
136*1fa4b3daSHector Dearman            ]
137*1fa4b3daSHector Dearman        },
138*1fa4b3daSHector Dearman        {
139*1fa4b3daSHector Dearman            code: "[foo_bar.baz]",
140*1fa4b3daSHector Dearman            errors: [
141*1fa4b3daSHector Dearman                {
142*1fa4b3daSHector Dearman                    message: "Identifier 'foo_bar' is not in camel case.",
143*1fa4b3daSHector Dearman                    type: "Identifier"
144*1fa4b3daSHector Dearman                }
145*1fa4b3daSHector Dearman            ]
146*1fa4b3daSHector Dearman        },
147*1fa4b3daSHector Dearman        {
148*1fa4b3daSHector Dearman            code: "if (foo.bar_baz === boom.bam_pow) { [foo_bar.baz] }",
149*1fa4b3daSHector Dearman            errors: [
150*1fa4b3daSHector Dearman                {
151*1fa4b3daSHector Dearman                    message: "Identifier 'foo_bar' is not in camel case.",
152*1fa4b3daSHector Dearman                    type: "Identifier"
153*1fa4b3daSHector Dearman                }
154*1fa4b3daSHector Dearman            ]
155*1fa4b3daSHector Dearman        },
156*1fa4b3daSHector Dearman        {
157*1fa4b3daSHector Dearman            code: "foo.bar_baz = boom.bam_pow",
158*1fa4b3daSHector Dearman            errors: [
159*1fa4b3daSHector Dearman                {
160*1fa4b3daSHector Dearman                    message: "Identifier 'bar_baz' is not in camel case.",
161*1fa4b3daSHector Dearman                    type: "Identifier"
162*1fa4b3daSHector Dearman                }
163*1fa4b3daSHector Dearman            ]
164*1fa4b3daSHector Dearman        },
165*1fa4b3daSHector Dearman        {
166*1fa4b3daSHector Dearman            code: "var foo = { bar_baz: boom.bam_pow }",
167*1fa4b3daSHector Dearman            errors: [
168*1fa4b3daSHector Dearman                {
169*1fa4b3daSHector Dearman                    message: "Identifier 'bar_baz' is not in camel case.",
170*1fa4b3daSHector Dearman                    type: "Identifier"
171*1fa4b3daSHector Dearman                }
172*1fa4b3daSHector Dearman            ]
173*1fa4b3daSHector Dearman        },
174*1fa4b3daSHector Dearman        {
175*1fa4b3daSHector Dearman            code: "foo.qux.boom_pow = { bar: boom.bam_pow }",
176*1fa4b3daSHector Dearman            errors: [
177*1fa4b3daSHector Dearman                {
178*1fa4b3daSHector Dearman                    message: "Identifier 'boom_pow' is not in camel case.",
179*1fa4b3daSHector Dearman                    type: "Identifier"
180*1fa4b3daSHector Dearman                }
181*1fa4b3daSHector Dearman            ]
182*1fa4b3daSHector Dearman        },
183*1fa4b3daSHector Dearman        {
184*1fa4b3daSHector Dearman            code: "var o = {bar_baz: 1}",
185*1fa4b3daSHector Dearman            options: [{properties: "always"}],
186*1fa4b3daSHector Dearman            errors: [
187*1fa4b3daSHector Dearman                {
188*1fa4b3daSHector Dearman                    message: "Identifier 'bar_baz' is not in camel case.",
189*1fa4b3daSHector Dearman                    type: "Identifier"
190*1fa4b3daSHector Dearman                }
191*1fa4b3daSHector Dearman            ]
192*1fa4b3daSHector Dearman        },
193*1fa4b3daSHector Dearman        {
194*1fa4b3daSHector Dearman            code: "obj.a_b = 2;",
195*1fa4b3daSHector Dearman            options: [{properties: "always"}],
196*1fa4b3daSHector Dearman            errors: [
197*1fa4b3daSHector Dearman                {
198*1fa4b3daSHector Dearman                    message: "Identifier 'a_b' is not in camel case.",
199*1fa4b3daSHector Dearman                    type: "Identifier"
200*1fa4b3daSHector Dearman                }
201*1fa4b3daSHector Dearman            ]
202*1fa4b3daSHector Dearman        },
203*1fa4b3daSHector Dearman        {
204*1fa4b3daSHector Dearman            code: "obj.a_b = 2;",
205*1fa4b3daSHector Dearman            options: [{properties: "always"}],
206*1fa4b3daSHector Dearman            errors: [
207*1fa4b3daSHector Dearman                {
208*1fa4b3daSHector Dearman                    message: "Identifier 'a_b' is not in camel case.",
209*1fa4b3daSHector Dearman                    type: "Identifier"
210*1fa4b3daSHector Dearman                }
211*1fa4b3daSHector Dearman            ]
212*1fa4b3daSHector Dearman        },
213*1fa4b3daSHector Dearman        {
214*1fa4b3daSHector Dearman            code: "var { category_id: category_id } = query;",
215*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6 },
216*1fa4b3daSHector Dearman            errors: [
217*1fa4b3daSHector Dearman                {
218*1fa4b3daSHector Dearman                    message: "Identifier 'category_id' is not in camel case.",
219*1fa4b3daSHector Dearman                    type: "Identifier"
220*1fa4b3daSHector Dearman                }
221*1fa4b3daSHector Dearman            ]
222*1fa4b3daSHector Dearman        },
223*1fa4b3daSHector Dearman        {
224*1fa4b3daSHector Dearman            code: "var { category_id } = query;",
225*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6 },
226*1fa4b3daSHector Dearman            errors: [
227*1fa4b3daSHector Dearman                {
228*1fa4b3daSHector Dearman                    message: "Identifier 'category_id' is not in camel case.",
229*1fa4b3daSHector Dearman                    type: "Identifier"
230*1fa4b3daSHector Dearman                }
231*1fa4b3daSHector Dearman            ]
232*1fa4b3daSHector Dearman        },
233*1fa4b3daSHector Dearman        {
234*1fa4b3daSHector Dearman            code: "import no_camelcased from \"external-module\";",
235*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" },
236*1fa4b3daSHector Dearman            errors: [
237*1fa4b3daSHector Dearman                {
238*1fa4b3daSHector Dearman                    message: "Identifier 'no_camelcased' is not in camel case.",
239*1fa4b3daSHector Dearman                    type: "Identifier"
240*1fa4b3daSHector Dearman                }
241*1fa4b3daSHector Dearman            ]
242*1fa4b3daSHector Dearman        },
243*1fa4b3daSHector Dearman        {
244*1fa4b3daSHector Dearman            code: "import * as no_camelcased from \"external-module\";",
245*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" },
246*1fa4b3daSHector Dearman            errors: [
247*1fa4b3daSHector Dearman                {
248*1fa4b3daSHector Dearman                    message: "Identifier 'no_camelcased' is not in camel case.",
249*1fa4b3daSHector Dearman                    type: "Identifier"
250*1fa4b3daSHector Dearman                }
251*1fa4b3daSHector Dearman            ]
252*1fa4b3daSHector Dearman        },
253*1fa4b3daSHector Dearman        {
254*1fa4b3daSHector Dearman            code: "import { no_camelcased } from \"external-module\";",
255*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" },
256*1fa4b3daSHector Dearman            errors: [
257*1fa4b3daSHector Dearman                {
258*1fa4b3daSHector Dearman                    message: "Identifier 'no_camelcased' is not in camel case.",
259*1fa4b3daSHector Dearman                    type: "Identifier"
260*1fa4b3daSHector Dearman                }
261*1fa4b3daSHector Dearman            ]
262*1fa4b3daSHector Dearman        },
263*1fa4b3daSHector Dearman        {
264*1fa4b3daSHector Dearman            code: "import { no_camelcased as no_camel_cased } from \"external module\";",
265*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" },
266*1fa4b3daSHector Dearman            errors: [
267*1fa4b3daSHector Dearman                {
268*1fa4b3daSHector Dearman                    message: "Identifier 'no_camel_cased' is not in camel case.",
269*1fa4b3daSHector Dearman                    type: "Identifier"
270*1fa4b3daSHector Dearman                }
271*1fa4b3daSHector Dearman            ]
272*1fa4b3daSHector Dearman        },
273*1fa4b3daSHector Dearman        {
274*1fa4b3daSHector Dearman            code: "import { camelCased as no_camel_cased } from \"external module\";",
275*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" },
276*1fa4b3daSHector Dearman            errors: [
277*1fa4b3daSHector Dearman                {
278*1fa4b3daSHector Dearman                    message: "Identifier 'no_camel_cased' is not in camel case.",
279*1fa4b3daSHector Dearman                    type: "Identifier"
280*1fa4b3daSHector Dearman                }
281*1fa4b3daSHector Dearman            ]
282*1fa4b3daSHector Dearman        },
283*1fa4b3daSHector Dearman        {
284*1fa4b3daSHector Dearman            code: "import { camelCased, no_camelcased } from \"external-module\";",
285*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" },
286*1fa4b3daSHector Dearman            errors: [
287*1fa4b3daSHector Dearman                {
288*1fa4b3daSHector Dearman                    message: "Identifier 'no_camelcased' is not in camel case.",
289*1fa4b3daSHector Dearman                    type: "Identifier"
290*1fa4b3daSHector Dearman                }
291*1fa4b3daSHector Dearman            ]
292*1fa4b3daSHector Dearman        },
293*1fa4b3daSHector Dearman        {
294*1fa4b3daSHector Dearman            code: "import { no_camelcased as camelCased, another_no_camelcased } from \"external-module\";",
295*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" },
296*1fa4b3daSHector Dearman            errors: [
297*1fa4b3daSHector Dearman                {
298*1fa4b3daSHector Dearman                    message: "Identifier 'another_no_camelcased' is not in camel case.",
299*1fa4b3daSHector Dearman                    type: "Identifier"
300*1fa4b3daSHector Dearman                }
301*1fa4b3daSHector Dearman            ]
302*1fa4b3daSHector Dearman        },
303*1fa4b3daSHector Dearman        {
304*1fa4b3daSHector Dearman            code: "import camelCased, { no_camelcased } from \"external-module\";",
305*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" },
306*1fa4b3daSHector Dearman            errors: [
307*1fa4b3daSHector Dearman                {
308*1fa4b3daSHector Dearman                    message: "Identifier 'no_camelcased' is not in camel case.",
309*1fa4b3daSHector Dearman                    type: "Identifier"
310*1fa4b3daSHector Dearman                }
311*1fa4b3daSHector Dearman            ]
312*1fa4b3daSHector Dearman        },
313*1fa4b3daSHector Dearman        {
314*1fa4b3daSHector Dearman            code: "import no_camelcased, { another_no_camelcased as camelCased } from \"external-module\";",
315*1fa4b3daSHector Dearman            parserOptions: { ecmaVersion: 6, sourceType: "module" },
316*1fa4b3daSHector Dearman            errors: [
317*1fa4b3daSHector Dearman                {
318*1fa4b3daSHector Dearman                    message: "Identifier 'no_camelcased' is not in camel case.",
319*1fa4b3daSHector Dearman                    type: "Identifier"
320*1fa4b3daSHector Dearman                }
321*1fa4b3daSHector Dearman            ]
322*1fa4b3daSHector Dearman        }
323*1fa4b3daSHector Dearman    ]
324*1fa4b3daSHector Dearman});
325