Skip to content

Commit ddce5b6

Browse files
authored
chore: Enabling max-len lint rule (#1014)
1 parent 699aa9b commit ddce5b6

12 files changed

+83
-24
lines changed

.eslintrc.js

+7
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ module.exports = {
3838
// Required checks
3939
'indent': ['error', 2],
4040
'keyword-spacing': ['error'],
41+
'max-len': [
42+
'error',
43+
{
44+
'code': 120,
45+
'ignoreUrls': true
46+
}
47+
],
4148
"object-curly-spacing": [2, "always"],
4249
'@typescript-eslint/explicit-function-return-type': [
4350
'error',

src/auth/auth-api-request.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1532,7 +1532,8 @@ export abstract class AbstractAuthRequestHandler {
15321532
return Promise.reject(e);
15331533
}
15341534
const providerId = options.providerId;
1535-
return this.invokeRequestHandler(this.getProjectConfigUrlBuilder(), CREATE_OAUTH_IDP_CONFIG, request, { providerId })
1535+
return this.invokeRequestHandler(
1536+
this.getProjectConfigUrlBuilder(), CREATE_OAUTH_IDP_CONFIG, request, { providerId })
15361537
.then((response: any) => {
15371538
if (!OIDCConfig.getProviderIdFromResourceName(response.name)) {
15381539
throw new FirebaseAuthError(

src/credential.d.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@ export namespace admin.credential {
108108
* @return A credential authenticated via the
109109
* provided service account that can be used to initialize an app.
110110
*/
111-
function cert(serviceAccountPathOrObject: string | _admin.ServiceAccount, httpAgent?: Agent): admin.credential.Credential;
111+
function cert(
112+
serviceAccountPathOrObject: string | _admin.ServiceAccount,
113+
httpAgent?: Agent): admin.credential.Credential;
112114

113115
/**
114116
* Returns a credential created from the provided refresh token that grants

test/integration/auth.spec.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -171,14 +171,16 @@ describe('admin.auth', () => {
171171
const firstMultiFactor = userRecord.multiFactor!.enrolledFactors[0];
172172
expect(firstMultiFactor.uid).not.to.be.undefined;
173173
expect(firstMultiFactor.enrollmentTime).not.to.be.undefined;
174-
expect((firstMultiFactor as admin.auth.PhoneMultiFactorInfo).phoneNumber).to.equal(enrolledFactors[0].phoneNumber);
174+
expect((firstMultiFactor as admin.auth.PhoneMultiFactorInfo).phoneNumber).to.equal(
175+
enrolledFactors[0].phoneNumber);
175176
expect(firstMultiFactor.displayName).to.equal(enrolledFactors[0].displayName);
176177
expect(firstMultiFactor.factorId).to.equal(enrolledFactors[0].factorId);
177178
// Confirm second enrolled second factor.
178179
const secondMultiFactor = userRecord.multiFactor!.enrolledFactors[1];
179180
expect(secondMultiFactor.uid).not.to.be.undefined;
180181
expect(secondMultiFactor.enrollmentTime).not.to.be.undefined;
181-
expect((secondMultiFactor as admin.auth.PhoneMultiFactorInfo).phoneNumber).to.equal(enrolledFactors[1].phoneNumber);
182+
expect((secondMultiFactor as admin.auth.PhoneMultiFactorInfo).phoneNumber).to.equal(
183+
enrolledFactors[1].phoneNumber);
182184
expect(secondMultiFactor.displayName).to.equal(enrolledFactors[1].displayName);
183185
expect(secondMultiFactor.factorId).to.equal(enrolledFactors[1].factorId);
184186
});
@@ -218,7 +220,9 @@ describe('admin.auth', () => {
218220
* the uid, email, and phoneNumber fields. Works with at least UserRecord
219221
* and UserImportRecord instances.
220222
*/
221-
function mapUserRecordsToUidEmailPhones(values: Array<{ uid: string; email?: string; phoneNumber?: string}>): Array<{ uid: string; email?: string; phoneNumber?: string}> {
223+
function mapUserRecordsToUidEmailPhones(
224+
values: Array<{ uid: string; email?: string; phoneNumber?: string}>
225+
): Array<{ uid: string; email?: string; phoneNumber?: string}> {
222226
return values.map((ur) => ({ uid: ur.uid, email: ur.email, phoneNumber: ur.phoneNumber }));
223227
}
224228

test/integration/remote-config.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ describe('admin.remoteConfig', () => {
246246
INVALID_JSON_STRINGS.forEach((invalidJson) => {
247247
it(`should throw if the json string is ${JSON.stringify(invalidJson)}`, () => {
248248
expect(() => admin.remoteConfig().createTemplateFromJSON(invalidJson))
249-
.to.throw(/^Failed to parse the JSON string: ([\D\w]*)\. SyntaxError: Unexpected token ([\D\w]*) in JSON at position ([0-9]*)$/);
249+
.to.throw(/Failed to parse the JSON string/);
250250
});
251251
});
252252

test/resources/mocks.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ export const certificateObject = require('./mock.key.json');
150150

151151
// Randomly generated key pairs that don't correspond to anything related to Firebase or GCP
152152
export const keyPairs = [
153-
/* tslint:disable:max-line-length */
153+
/* eslint-disable max-len */
154154
// The private key for this key pair is identical to the one used in ./mock.key.json
155155
{
156156
public: '-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAwJENcRev+eXZKvhhWLiV3Lz2MvO+naQRHo59g3vaNQnbgyduN/L4krlrJ5c6\nFiikXdtJNb/QrsAHSyJWCu8j3T9CruiwbidGAk2W0RuViTVspjHUTsIHExx9euWM0UomGvYk\noqXahdhPL/zViVSJt+Rt8bHLsMvpb8RquTIb9iKY3SMV2tCofNmyCSgVbghq/y7lKORtV/IR\nguWs6R22fbkb0r2MCYoNAbZ9dqnbRIFNZBC7itYtUoTEresRWcyFMh0zfAIJycWOJlVLDLqk\nY2SmIx8u7fuysCg1wcoSZoStuDq02nZEMw1dx8HGzE0hynpHlloRLByuIuOAfMCCYwIDAQAB\n-----END RSA PUBLIC KEY-----\n',
@@ -160,12 +160,12 @@ export const keyPairs = [
160160
public: '-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAzhI/CMRtNO45R0DD4NBXFRDYAjlB/UVGGdMJKbCIrD3Uq7r/ivedqRYUIccO\nqpeYeu9IH9iotkKq8TM0eCJAUr9WT0o5YzpGvaB8ut87xLh8SqK42VmYAvemUjI257LtDbms\nhoqzqt9Yq0sgC05b7L3r2xDTxnefeMUHYBwaerCr8PTBCu7NjK3eIWHGPouEwT46WoUpnoNm\nxdI16CoSMqtuxteG8c14qJbGR9AZujkRDntWOuL1m5KaUIc7XcAaXBt4FiPwoDoQmmCmydVC\njln3YwSrvL60iAQM6pzCxNRrJRWPYd2u7fgjir/W88w5KHOvdbUyemZWnd6SBExHuQIDAQAB\n-----END RSA PUBLIC KEY-----\n',
161161
private: '-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAzhI/CMRtNO45R0DD4NBXFRDYAjlB/UVGGdMJKbCIrD3Uq7r/ivedqRYU\nIccOqpeYeu9IH9iotkKq8TM0eCJAUr9WT0o5YzpGvaB8ut87xLh8SqK42VmYAvemUjI257Lt\nDbmshoqzqt9Yq0sgC05b7L3r2xDTxnefeMUHYBwaerCr8PTBCu7NjK3eIWHGPouEwT46WoUp\nnoNmxdI16CoSMqtuxteG8c14qJbGR9AZujkRDntWOuL1m5KaUIc7XcAaXBt4FiPwoDoQmmCm\nydVCjln3YwSrvL60iAQM6pzCxNRrJRWPYd2u7fgjir/W88w5KHOvdbUyemZWnd6SBExHuQID\nAQABAoIBAQDJ9iv9BbYaGBfe82SGIuoV5Uou87ru5EPN73yddTydwoN6Q21L316PZuoYKKUB\nIE36viSrwYWoCzLJ7etQihEMiCWo1A/mZikKlA1qgHptVHnMFCqiKiLHVbuV90zETCH0P7MM\nsUdhAkA+sQQY0JVbMs/DBXzomDic/k06LpDtCBNdjL7UIT5KyFbBqit+cV6H91Ujqg8MmzrU\ntOSw+63oSqZJkT6WPuA/NJNXqtFF+0aOKNX1ttrrTzSDhyp6AxOO7Wm++dpYBtcfnOc3EG65\nul9PfKsJwVZFVO+AAZwdLCeKjtCtWeJc/yXvSj2NTsjs3FKJkRAmmiMp5tH+vbE5AoGBAOhn\nKTXGI+ofA3iggByt2InCU+YIXsw1EbbhH4LGB8yyUA2SIjZybwUMKCkoMxmEumFP/FWgOL2w\nLlClqf9vZg9dBy8bDINJHm+9roYRO0/EhHA6IDSC+0X5BPZOexrBI07HJI7w7Y0WHFU8jK53\n55ps2YGT20n7haRMbbPMrq/3AoGBAOL+pY8bgCnKmeG2inun4FuD+0/aXAySXi70/BAABeHH\npogEfc0jv5SgygTiuC/2T84Jmsg0Y6M2l86srMrMA07xtyMbfRq7zih+K+EDoQ9HAwhDqxX5\nM7E8fPXscDzH2Y361QiGAQpjUcMix3hDV8oK537rYOmCYku18ZsVkjnPAoGAbE1u4fVlVTyA\ntJ0vNq45Q/GAgamS690rVStSMPIyPk02iyx3ryHi5NpGeO+X6KN269SHhiu1ZYiN/N1G/Jeg\nWzaCG4yiZygS/AXMKAQtvL2a7mXYDkCf8nrauiHWsqAg4RxiyA401dPg/kPKV5/fGZLyRbVu\nsup43BkV4n1XRv8CgYAmUIE1dJjfdPkgZiVd1epCyDZFNkBPRu1q06MwODDF+WMcllV9qMkP\nl0xCItqgDd1Ok8RygpVG2VIqam8IFAOC8b3NyTgGqSiVISba5jfrUjsqy/E21kdpZSJaiDwx\npjIMiwgmVigazsTgQSCWJhfNXKXSgHxtLbrVuLI9URjLdQKBgQDProyaG7pspt6uUdqMTa4+\nGVkUg+gIt5aVTf/Lb25K3SHA1baPamtbTDDf6vUjeJtTG+O+RMGqK5mB2MywjVHJdMGcJ44e\nogIh9eWY450oUoVBjEsdUd7Ef5KcpMFDUVFJwzCY371+Loqh2KYAk8WUSRzwGuw2QtLPO/L/\nQkKj4Q==\n-----END RSA PRIVATE KEY-----\n',
162162
},
163-
/* tslint:enable:max-line-length */
163+
/* eslint-enable max-len */
164164
];
165165

166166
// Randomly generated an X.509 certs using https://www.samltool.com/self_signed_certs.php
167167
export const x509CertPairs = [
168-
/* tslint:disable:max-line-length */
168+
/* eslint-disable max-len */
169169
{
170170
public: '-----BEGIN CERTIFICATE-----\nMIICZjCCAc+gAwIBAgIBADANBgkqhkiG9w0BAQ0FADBQMQswCQYDVQQGEwJ1czEL\nMAkGA1UECAwCQ0ExDTALBgNVBAoMBEFjbWUxETAPBgNVBAMMCGFjbWUuY29tMRIw\nEAYDVQQHDAlTdW5ueXZhbGUwHhcNMTgxMjA2MDc1MTUxWhcNMjgxMjAzMDc1MTUx\nWjBQMQswCQYDVQQGEwJ1czELMAkGA1UECAwCQ0ExDTALBgNVBAoMBEFjbWUxETAP\nBgNVBAMMCGFjbWUuY29tMRIwEAYDVQQHDAlTdW5ueXZhbGUwgZ8wDQYJKoZIhvcN\nAQEBBQADgY0AMIGJAoGBAKphmggjiVgqMLXyzvI7cKphscIIQ+wcv7Dld6MD4aKv\n7Jqr8ltujMxBUeY4LFEKw8Terb01snYpDotfilaG6NxpF/GfVVmMalzwWp0mT8+H\nyzyPj89mRcozu17RwuooR6n1ofXjGcBE86lqC21UhA3WVgjPOLqB42rlE9gPnZLB\nAgMBAAGjUDBOMB0GA1UdDgQWBBS0iM7WnbCNOnieOP1HIA+Oz/ML+zAfBgNVHSME\nGDAWgBS0iM7WnbCNOnieOP1HIA+Oz/ML+zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3\nDQEBDQUAA4GBAF3jBgS+wP+K/jTupEQur6iaqS4UvXd//d4vo1MV06oTLQMTz+rP\nOSMDNwxzfaOn6vgYLKP/Dcy9dSTnSzgxLAxfKvDQZA0vE3udsw0Bd245MmX4+GOp\nlbrN99XP1u+lFxCSdMUzvQ/jW4ysw/Nq4JdJ0gPAyPvL6Qi/3mQdIQwx\n-----END CERTIFICATE-----\n',
171171
private: '-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKphmggjiVgqMLXy\nzvI7cKphscIIQ+wcv7Dld6MD4aKv7Jqr8ltujMxBUeY4LFEKw8Terb01snYpDotf\nilaG6NxpF/GfVVmMalzwWp0mT8+HyzyPj89mRcozu17RwuooR6n1ofXjGcBE86lq\nC21UhA3WVgjPOLqB42rlE9gPnZLBAgMBAAECgYAwZ7g2FbqAZMQf/RKUORTiIw04\nXdbGLsi6/gZGNuUUrjxfGPiqxzaTFP+qk0zr3U4PEWB0v9uqvDFYoVURDhT7isxm\nH5bc6dxwvBRIy8tLtvxo0jMTotJaBhEHP3YMKxbC7lxo3PV5HLIve5nf9ChOypKp\n4zbP4d1IJjpu8ggrbQJBANoPCrJyXjsDgh8WAEpALAsgM4ugyJwdk8AHJUTy3IeJ\niYYB/RLVpYW8LI1dmqN5NPKbyKE+dsdSiiEpclsocl8CQQDIBt5DbO+tEGr5BGsk\nBi+P3E1M3KVV2eJv+inlgYkYeS/cdd5CJczCDwxeDk8DXsKvmOp0LCHeU2sCKjSy\nF07fAkB86KLjB1ptCZxu/CZcYhgYo3CDai2gJ90r4av6q/eheCqb5eW29UUkr18B\n932OaO7ojk5F90cI9IIFbv1/tFKXAkEAnrXUZWtqQMdmGW+IE21VD7CdJP9tsFDR\nekfkNlYxkVmWwDZFw/Z6IQAPsBFqYCIwF2Qdo0/hD6bgoTcb2LLlwQJATqOMr7yr\neYKLJ+edhwMHx4U5ZIT8l/MjDv4/6L6FgGYVo7gNjjIIsDXUOo3PlBOWe6fxb5+f\ntFlwxZNz+g9ONg==\n-----END PRIVATE KEY-----\n',
@@ -174,7 +174,7 @@ export const x509CertPairs = [
174174
public: '-----BEGIN CERTIFICATE-----\nMIICZjCCAc+gAwIBAgIBADANBgkqhkiG9w0BAQ0FADBQMQswCQYDVQQGEwJ1czEL\nMAkGA1UECAwCQ0ExDTALBgNVBAoMBEFjbWUxETAPBgNVBAMMCGFjbWUuY29tMRIw\nEAYDVQQHDAlTdW5ueXZhbGUwHhcNMTgxMjA2MDc1ODE4WhcNMjgxMjAzMDc1ODE4\nWjBQMQswCQYDVQQGEwJ1czELMAkGA1UECAwCQ0ExDTALBgNVBAoMBEFjbWUxETAP\nBgNVBAMMCGFjbWUuY29tMRIwEAYDVQQHDAlTdW5ueXZhbGUwgZ8wDQYJKoZIhvcN\nAQEBBQADgY0AMIGJAoGBAKuzYKfDZGA6DJgQru3wNUqv+S0hMZfP/jbp8ou/8UKu\nrNeX7cfCgt3yxoGCJYKmF6t5mvo76JY0MWwA53BxeP/oyXmJ93uHG5mFRAsVAUKs\ncVVb0Xi6ujxZGVdDWFV696L0BNOoHTfXmac6IBoZQzNNK4n1AATqwo+z7a0pfRrJ\nAgMBAAGjUDBOMB0GA1UdDgQWBBSKmi/ZKMuLN0ES7/jPa7q7jAjPiDAfBgNVHSME\nGDAWgBSKmi/ZKMuLN0ES7/jPa7q7jAjPiDAMBgNVHRMEBTADAQH/MA0GCSqGSIb3\nDQEBDQUAA4GBAAg2a2kSn05NiUOuWOHwPUjW3wQRsGxPXtbhWMhmNdCfKKteM2+/\nLd/jz5F3qkOgGQ3UDgr3SHEoWhnLaJMF4a2tm6vL2rEIfPEK81KhTTRxSsAgMVbU\nJXBz1md6Ur0HlgQC7d1CHC8/xi2DDwHopLyxhogaZUxy9IaRxUEa2vJW\n-----END CERTIFICATE-----\n',
175175
private: '-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKuzYKfDZGA6DJgQ\nru3wNUqv+S0hMZfP/jbp8ou/8UKurNeX7cfCgt3yxoGCJYKmF6t5mvo76JY0MWwA\n53BxeP/oyXmJ93uHG5mFRAsVAUKscVVb0Xi6ujxZGVdDWFV696L0BNOoHTfXmac6\nIBoZQzNNK4n1AATqwo+z7a0pfRrJAgMBAAECgYBG15vpnBSuH0VS+I80XQef6TtG\nA4wStx6MSbppLqi8epWV3nmdEgQszx5YEPqpDR53AZWP6WftkVtS1IypOChTwRIh\n73vheFJ4XYqjoU+2OUtj7hhMMHDBFhw7W3Jvz4PkPu9drmzBS8N5Dd38ROwhwoS3\nUD/18pxXXyd61s/+gQJBANSuA7fRna1qXmRmdwpQR1Mebh0dw2ZgOn4ekIgsfmgP\nGPznhsjWQEuT1BxIS8R8x4ZmCJY4W89GfUBLtWprBTsCQQDOrIyHCOzOmNYXcgRT\nhW+ZiSi+46FAYqCKawIwlq2M0GsJaMTdXFQFKTmnxiNvWxxDOeZcIsrc5uwEwr6A\n3I/LAkEAwuFBHurAZOsW20DYy2aMNKmplJx1NBXxAyfWoDDFE2ziJLuyUc2g1J/8\nuH22j7EW0xwjuiKiXeflVUkKTx0JiQJAUQb5OV/YZ88n8J008QHZlRpfLSfVaobA\nZkQ54Y7Rj+mObWvz8s1l63gUMKDP97KCzCCBHhJN8nlegydOxPq0LQJADBjkunGt\nfIGv6A3SG5/5nRYI1gHQsq30BaAPwx6BuDBtnaf5BpzcFvu1JMNHoVFYzmiykpwX\n1zUhaAtcX2BV9g==\n-----END PRIVATE KEY-----\n',
176176
},
177-
/* tslint:enable:max-line-length */
177+
/* eslint-enable max-len */
178178
];
179179

180180
/**

test/unit/project-management/android-app.spec.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ import * as _ from 'lodash';
2121
import * as sinon from 'sinon';
2222
import { FirebaseApp } from '../../../src/firebase-app';
2323
import { AndroidApp, ShaCertificate } from '../../../src/project-management/android-app';
24-
import { ProjectManagementRequestHandler } from '../../../src/project-management/project-management-api-request-internal';
24+
import {
25+
ProjectManagementRequestHandler
26+
} from '../../../src/project-management/project-management-api-request-internal';
2527
import { deepCopy } from '../../../src/utils/deep-copy';
2628
import { FirebaseProjectManagementError } from '../../../src/utils/error';
2729
import * as mocks from '../../resources/mocks';

test/unit/project-management/ios-app.spec.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ import * as _ from 'lodash';
2121
import * as sinon from 'sinon';
2222
import { FirebaseApp } from '../../../src/firebase-app';
2323
import { IosApp } from '../../../src/project-management/ios-app';
24-
import { ProjectManagementRequestHandler } from '../../../src/project-management/project-management-api-request-internal';
24+
import {
25+
ProjectManagementRequestHandler
26+
} from '../../../src/project-management/project-management-api-request-internal';
2527
import { deepCopy } from '../../../src/utils/deep-copy';
2628
import { FirebaseProjectManagementError } from '../../../src/utils/error';
2729
import * as mocks from '../../resources/mocks';

test/unit/project-management/project-management-api-request.spec.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ import * as _ from 'lodash';
2222
import * as sinon from 'sinon';
2323
import * as sinonChai from 'sinon-chai';
2424
import { FirebaseApp } from '../../../src/firebase-app';
25-
import { ProjectManagementRequestHandler } from '../../../src/project-management/project-management-api-request-internal';
25+
import {
26+
ProjectManagementRequestHandler
27+
} from '../../../src/project-management/project-management-api-request-internal';
2628
import { HttpClient } from '../../../src/utils/api-request';
2729
import * as mocks from '../../resources/mocks';
2830
import * as utils from '../utils';

test/unit/project-management/project-management.spec.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ import * as sinon from 'sinon';
2222
import { FirebaseApp } from '../../../src/firebase-app';
2323
import { AndroidApp } from '../../../src/project-management/android-app';
2424
import { ProjectManagement } from '../../../src/project-management/project-management';
25-
import { ProjectManagementRequestHandler } from '../../../src/project-management/project-management-api-request-internal';
25+
import {
26+
ProjectManagementRequestHandler
27+
} from '../../../src/project-management/project-management-api-request-internal';
2628
import { FirebaseProjectManagementError } from '../../../src/utils/error';
2729
import * as mocks from '../../resources/mocks';
2830
import { IosApp } from '../../../src/project-management/ios-app';

test/unit/remote-config/remote-config-api-client.spec.ts

+25-6
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ import {
2525
ListVersionsResult,
2626
Version,
2727
} from '../../../src/remote-config/remote-config-api-client';
28-
import { FirebaseRemoteConfigError, RemoteConfigApiClient } from '../../../src/remote-config/remote-config-api-client-internal';
28+
import {
29+
FirebaseRemoteConfigError,
30+
RemoteConfigApiClient
31+
} from '../../../src/remote-config/remote-config-api-client-internal';
2932
import { HttpClient } from '../../../src/utils/api-request';
3033
import * as utils from '../utils';
3134
import * as mocks from '../../resources/mocks';
@@ -47,7 +50,8 @@ describe('RemoteConfigApiClient', () => {
4750
};
4851

4952
const VALIDATION_ERROR_MESSAGES = [
50-
"[VALIDATION_ERROR]: [foo] are not valid condition names. All keys in all conditional value maps must be valid condition names.",
53+
"[VALIDATION_ERROR]: [foo] are not valid condition names. All keys in all conditional value" +
54+
" maps must be valid condition names.",
5155
"[VERSION_MISMATCH]: Expected version 6, found 8 for project: 123456789012"
5256
];
5357

@@ -529,11 +533,19 @@ describe('RemoteConfigApiClient', () => {
529533
});
530534
});
531535

532-
['', 'abc', 'a123b', 'a123', '123a', 1.2, '70.2', null, NaN, true, [], {}].forEach(
536+
['', null, NaN, true, [], {}].forEach(
537+
(invalidVersion) => {
538+
it(`should throw if the endVersionNumber is: ${invalidVersion}`, () => {
539+
expect(() => apiClient.listVersions({ endVersionNumber: invalidVersion } as any))
540+
.to.throw(/^endVersionNumber must be a non-empty string in int64 format or a number$/);
541+
});
542+
});
543+
544+
['abc', 'a123b', 'a123', '123a', 1.2, '70.2'].forEach(
533545
(invalidVersion) => {
534546
it(`should throw if the endVersionNumber is: ${invalidVersion}`, () => {
535547
expect(() => apiClient.listVersions({ endVersionNumber: invalidVersion } as any))
536-
.to.throw(/^endVersionNumber must be (a non-empty string in int64 format or a number|an integer or a string in int64 format)$/);
548+
.to.throw(/^endVersionNumber must be an integer or a string in int64 format$/);
537549
});
538550
});
539551

@@ -655,10 +667,17 @@ describe('RemoteConfigApiClient', () => {
655667
});
656668

657669
function runTemplateVersionNumberTests(rcOperation: Function): void {
658-
['', 'abc', 'a123b', 'a123', '123a', 1.2, '70.2', null, NaN, true, [], {}].forEach((invalidVersion) => {
670+
['', null, NaN, true, [], {}].forEach((invalidVersion) => {
671+
it(`should reject if the versionNumber is: ${invalidVersion}`, () => {
672+
expect(() => rcOperation(invalidVersion as any))
673+
.to.throw(/^versionNumber must be a non-empty string in int64 format or a number$/);
674+
});
675+
});
676+
677+
['abc', 'a123b', 'a123', '123a', 1.2, '70.2'].forEach((invalidVersion) => {
659678
it(`should reject if the versionNumber is: ${invalidVersion}`, () => {
660679
expect(() => rcOperation(invalidVersion as any))
661-
.to.throw(/^versionNumber must be (a non-empty string in int64 format or a number|an integer or a string in int64 format)$/);
680+
.to.throw(/^versionNumber must be an integer or a string in int64 format$/);
662681
});
663682
});
664683
}

test/unit/remote-config/remote-config.spec.ts

+22-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ import {
2828
TagColor,
2929
ListVersionsResult,
3030
} from '../../../src/remote-config/remote-config-api-client';
31-
import { FirebaseRemoteConfigError, RemoteConfigApiClient } from '../../../src/remote-config/remote-config-api-client-internal';
31+
import {
32+
FirebaseRemoteConfigError,
33+
RemoteConfigApiClient
34+
} from '../../../src/remote-config/remote-config-api-client-internal';
3235
import { deepCopy } from '../../../src/utils/deep-copy';
3336

3437
const expect = chai.expect;
@@ -254,7 +257,21 @@ describe('RemoteConfig', () => {
254257
.should.eventually.be.rejected.and.deep.equal(INTERNAL_ERROR);
255258
});
256259

257-
['', 'abc', 'a123b', 'a123', '123a', 1.2, '70.2', null, NaN, true, [], {}].forEach((invalidVersion) => {
260+
['', null, NaN, true, [], {}].forEach((invalidVersion) => {
261+
it(`should reject if the versionNumber is: ${invalidVersion}`, () => {
262+
const response = deepCopy(REMOTE_CONFIG_LIST_VERSIONS_RESULT);
263+
response.versions[0].versionNumber = invalidVersion as any;
264+
const stub = sinon
265+
.stub(RemoteConfigApiClient.prototype, 'listVersions')
266+
.resolves(response);
267+
stubs.push(stub);
268+
return remoteConfig.listVersions()
269+
.should.eventually.be.rejected
270+
.and.to.match(/^Error: Version number must be a non-empty string in int64 format or a number$/);
271+
});
272+
});
273+
274+
['abc', 'a123b', 'a123', '123a', 1.2, '70.2'].forEach((invalidVersion) => {
258275
it(`should reject if the versionNumber is: ${invalidVersion}`, () => {
259276
const response = deepCopy(REMOTE_CONFIG_LIST_VERSIONS_RESULT);
260277
response.versions[0].versionNumber = invalidVersion as any;
@@ -263,7 +280,8 @@ describe('RemoteConfig', () => {
263280
.resolves(response);
264281
stubs.push(stub);
265282
return remoteConfig.listVersions()
266-
.should.eventually.be.rejected.and.to.match(/^Error: Version number must be (a non-empty string in int64 format or a number|an integer or a string in int64 format)$/);
283+
.should.eventually.be.rejected
284+
.and.to.match(/^Error: Version number must be an integer or a string in int64 format$/);
267285
});
268286
});
269287

@@ -415,7 +433,7 @@ describe('RemoteConfig', () => {
415433
INVALID_JSON_STRINGS.forEach((invalidJson) => {
416434
it(`should throw if the json string is ${JSON.stringify(invalidJson)}`, () => {
417435
expect(() => remoteConfig.createTemplateFromJSON(invalidJson))
418-
.to.throw(/^Failed to parse the JSON string: ([\D\w]*)\. SyntaxError: Unexpected token ([\D\w]*) in JSON at position ([0-9]*)$/);
436+
.to.throw(/Failed to parse the JSON string: ([\D\w]*)\./);
419437
});
420438
});
421439

0 commit comments

Comments
 (0)