Skip to content

Commit da78532

Browse files
author
Jacob Wenger
authored
Reorganized unit test suite into nested directory (#2)
1 parent ddef787 commit da78532

16 files changed

+77
-73
lines changed

gulpfile.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ var paths = {
3737
],
3838

3939
tests: [
40-
'test/utils.ts',
41-
'test/*.spec.ts',
40+
'test/unit/utils.ts',
41+
'test/unit/**/*.spec.ts',
4242
'test/resources/mocks.ts'
4343
],
4444

@@ -50,7 +50,7 @@ var paths = {
5050

5151
testBuild: '.tmp/',
5252

53-
testRunner: ['.tmp/test/index.spec.js']
53+
testRunner: ['.tmp/test/unit/index.spec.js']
5454
};
5555

5656
// Create a separate project for buildProject that overrides the rootDir

test/index.spec.ts

Lines changed: 0 additions & 12 deletions
This file was deleted.

test/auth-api-request.spec.ts renamed to test/unit/auth/auth-api-request.spec.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ import * as sinon from 'sinon';
88
import * as sinonChai from 'sinon-chai';
99
import * as chaiAsPromised from 'chai-as-promised';
1010

11-
import * as utils from './utils';
12-
import * as mocks from './resources/mocks';
11+
import * as utils from '../utils';
12+
import * as mocks from '../../resources/mocks';
1313

14-
import {deepCopy} from '../src/utils/deep-copy';
15-
import {FirebaseApp} from '../src/firebase-app';
16-
import {HttpRequestHandler} from '../src/utils/api-request';
17-
import * as validator from '../src/utils/validator';
14+
import {deepCopy} from '../../../src/utils/deep-copy';
15+
import {FirebaseApp} from '../../../src/firebase-app';
16+
import {HttpRequestHandler} from '../../../src/utils/api-request';
17+
import * as validator from '../../../src/utils/validator';
1818
import {
1919
FirebaseAuthRequestHandler, FIREBASE_AUTH_GET_ACCOUNT_INFO,
2020
FIREBASE_AUTH_DELETE_ACCOUNT, FIREBASE_AUTH_SET_ACCOUNT_INFO,
2121
FIREBASE_AUTH_SIGN_UP_NEW_USER,
22-
} from '../src/auth/auth-api-request';
23-
import {AuthClientErrorCode, FirebaseAuthError} from '../src/utils/error';
22+
} from '../../../src/auth/auth-api-request';
23+
import {AuthClientErrorCode, FirebaseAuthError} from '../../../src/utils/error';
2424

2525
chai.should();
2626
chai.use(sinonChai);

test/auth.spec.ts renamed to test/unit/auth/auth.spec.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ import * as sinon from 'sinon';
88
import * as sinonChai from 'sinon-chai';
99
import * as chaiAsPromised from 'chai-as-promised';
1010

11-
import * as utils from './utils';
12-
import * as mocks from './resources/mocks';
11+
import * as utils from '../utils';
12+
import * as mocks from '../../resources/mocks';
1313

14-
import {Auth} from '../src/auth/auth';
15-
import {UserRecord} from '../src/auth/user-record';
16-
import {FirebaseApp} from '../src/firebase-app';
17-
import {FirebaseTokenGenerator} from '../src/auth/token-generator';
18-
import {FirebaseAuthRequestHandler} from '../src/auth/auth-api-request';
19-
import {AuthClientErrorCode, FirebaseAuthError} from '../src/utils/error';
14+
import {Auth} from '../../../src/auth/auth';
15+
import {UserRecord} from '../../../src/auth/user-record';
16+
import {FirebaseApp} from '../../../src/firebase-app';
17+
import {FirebaseTokenGenerator} from '../../../src/auth/token-generator';
18+
import {FirebaseAuthRequestHandler} from '../../../src/auth/auth-api-request';
19+
import {AuthClientErrorCode, FirebaseAuthError} from '../../../src/utils/error';
2020

21-
import * as validator from '../src/utils/validator';
21+
import * as validator from '../../../src/utils/validator';
2222

2323
chai.should();
2424
chai.use(sinonChai);

test/credential.spec.ts renamed to test/unit/auth/credential.spec.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ import * as sinon from 'sinon';
1414
import * as sinonChai from 'sinon-chai';
1515
import * as chaiAsPromised from 'chai-as-promised';
1616

17-
import * as utils from './utils';
18-
import * as mocks from './resources/mocks';
17+
import * as utils from '../utils';
18+
import * as mocks from '../../resources/mocks';
1919

2020
import {
2121
ApplicationDefaultCredential, CertCredential, Certificate, GoogleOAuthAccessToken,
2222
MetadataServiceCredential, RefreshToken, RefreshTokenCredential,
23-
} from '../src/auth/credential';
23+
} from '../../../src/auth/credential';
2424

2525
chai.should();
2626
chai.use(sinonChai);
@@ -82,7 +82,7 @@ describe('Credential', () => {
8282
});
8383

8484
it('should throw if called with the path to an invalid file', () => {
85-
const invalidPath = path.resolve(__dirname, 'resources/unparesable.json');
85+
const invalidPath = path.resolve(__dirname, '../../resources/unparesable.json');
8686
expect(() => Certificate.fromPath(invalidPath))
8787
.to.throw('Failed to parse certificate key file: Error: ENOENT: no such file or directory');
8888
});
@@ -93,7 +93,7 @@ describe('Credential', () => {
9393
});
9494

9595
it('should not throw given a valid path to a key file', () => {
96-
const validPath = path.resolve(__dirname, 'resources/mock.key.json');
96+
const validPath = path.resolve(__dirname, '../../resources/mock.key.json');
9797
expect(() => Certificate.fromPath(validPath)).not.to.throw();
9898
});
9999
});
@@ -248,7 +248,7 @@ describe('Credential', () => {
248248
});
249249

250250
it('should return a CertCredential with GOOGLE_APPLICATION_CREDENTIALS set', () => {
251-
process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve(__dirname, './resources/mock.key.json');
251+
process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve(__dirname, '../../resources/mock.key.json');
252252
const c = new ApplicationDefaultCredential();
253253
expect(c.getCredential()).to.be.an.instanceof(CertCredential);
254254
});
@@ -281,7 +281,7 @@ describe('Credential', () => {
281281
});
282282

283283
it('should create access tokens', () => {
284-
process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve(__dirname, './resources/mock.key.json');
284+
process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve(__dirname, '../../resources/mock.key.json');
285285
const c = new ApplicationDefaultCredential();
286286
return c.getAccessToken().then((token) => {
287287
expect(token.access_token).to.be.a('string').and.to.not.be.empty;
@@ -290,7 +290,7 @@ describe('Credential', () => {
290290
});
291291

292292
it('should return a Credential', () => {
293-
process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve(__dirname, './resources/mock.key.json');
293+
process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve(__dirname, '../../resources/mock.key.json');
294294
const c = new ApplicationDefaultCredential();
295295
expect(c.getCertificate()).to.deep.equal({
296296
projectId: mockCertificateObject.project_id,

test/token-generator.spec.ts renamed to test/unit/auth/token-generator.spec.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22

33
// Use untyped import syntax for Node built-ins
4-
import path = require('path');
54
import https = require('https');
65

76
import * as _ from 'lodash';
@@ -14,9 +13,9 @@ import * as sinonChai from 'sinon-chai';
1413
import * as chaiAsPromised from 'chai-as-promised';
1514
import LegacyFirebaseTokenGenerator = require('firebase-token-generator');
1615

17-
import * as mocks from './resources/mocks';
18-
import {FirebaseTokenGenerator} from '../src/auth/token-generator';
19-
import {CertCredential, Certificate} from '../src/auth/credential';
16+
import * as mocks from '../../resources/mocks';
17+
import {FirebaseTokenGenerator} from '../../../src/auth/token-generator';
18+
import {Certificate} from '../../../src/auth/credential';
2019

2120
chai.should();
2221
chai.use(sinonChai);
@@ -185,9 +184,7 @@ describe('FirebaseTokenGenerator', () => {
185184

186185
it('should not throw given a valid certificate', () => {
187186
expect(() => {
188-
const pathToCertificate = path.resolve(__dirname, 'resources/mock.key.json');
189-
const certCredential = new CertCredential(Certificate.fromPath(pathToCertificate));
190-
return new FirebaseTokenGenerator(certCredential.getCertificate());
187+
return new FirebaseTokenGenerator(new Certificate(mocks.certificateObject));
191188
}).not.to.throw();
192189
});
193190

test/user-record.spec.ts renamed to test/unit/auth/user-record.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as chai from 'chai';
33
import * as sinonChai from 'sinon-chai';
44
import * as chaiAsPromised from 'chai-as-promised';
55

6-
import {UserInfo, UserMetadata, UserRecord} from '../src/auth/user-record';
6+
import {UserInfo, UserMetadata, UserRecord} from '../../../src/auth/user-record';
77

88

99
chai.should();

test/firebase-app.spec.ts renamed to test/unit/firebase-app.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ import * as sinonChai from 'sinon-chai';
1212
import * as chaiAsPromised from 'chai-as-promised';
1313

1414
import * as utils from './utils';
15-
import * as mocks from './resources/mocks';
15+
import * as mocks from '../resources/mocks';
1616

17-
import {GoogleOAuthAccessToken} from '../src/auth/credential';
18-
import {FirebaseServiceInterface} from '../src/firebase-service';
19-
import {FirebaseApp, FirebaseAccessToken} from '../src/firebase-app';
20-
import {FirebaseNamespace, FirebaseNamespaceInternals} from '../src/firebase-namespace';
17+
import {GoogleOAuthAccessToken} from '../../src/auth/credential';
18+
import {FirebaseServiceInterface} from '../../src/firebase-service';
19+
import {FirebaseApp, FirebaseAccessToken} from '../../src/firebase-app';
20+
import {FirebaseNamespace, FirebaseNamespaceInternals} from '../../src/firebase-namespace';
2121

2222
chai.should();
2323
chai.use(sinonChai);

test/firebase-namespace.spec.ts renamed to test/unit/firebase-namespace.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import * as sinonChai from 'sinon-chai';
99
import * as chaiAsPromised from 'chai-as-promised';
1010

1111
import * as utils from './utils';
12-
import * as mocks from './resources/mocks';
12+
import * as mocks from '../resources/mocks';
1313

14-
import {FirebaseNamespace} from '../src/firebase-namespace';
14+
import {FirebaseNamespace} from '../../src/firebase-namespace';
1515

1616
chai.should();
1717
chai.use(sinonChai);

test/firebase.spec.ts renamed to test/unit/firebase.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import * as nock from 'nock';
1010
import * as chaiAsPromised from 'chai-as-promised';
1111

1212
import * as utils from './utils';
13-
import * as mocks from './resources/mocks';
13+
import * as mocks from '../resources/mocks';
1414

15-
import * as firebaseAdmin from '../src/index';
15+
import * as firebaseAdmin from '../../src/index';
1616

1717
chai.should();
1818
chai.use(chaiAsPromised);
@@ -146,7 +146,7 @@ describe('Firebase', () => {
146146
it('should not throw given a valid path to a certificate key file', () => {
147147
expect(() => {
148148
firebaseAdmin.initializeApp({
149-
serviceAccount: path.resolve(__dirname, 'resources/mock.key.json'),
149+
serviceAccount: path.resolve(__dirname, '../resources/mock.key.json'),
150150
});
151151
}).not.to.throw();
152152
});
@@ -207,7 +207,7 @@ describe('Firebase', () => {
207207

208208
it('should initialize SDK given a valid path to a certificate key file', () => {
209209
firebaseAdmin.initializeApp({
210-
serviceAccount: path.resolve(__dirname, 'resources/mock.key.json'),
210+
serviceAccount: path.resolve(__dirname, '../resources/mock.key.json'),
211211
});
212212

213213
return firebaseAdmin.app().INTERNAL.getToken()
@@ -255,7 +255,7 @@ describe('Firebase', () => {
255255
});
256256

257257
it('should initialize SDK given a cert credential with a valid path to a certificate key file', () => {
258-
const keyPath = path.resolve(__dirname, 'resources/mock.key.json');
258+
const keyPath = path.resolve(__dirname, '../resources/mock.key.json');
259259
firebaseAdmin.initializeApp({
260260
credential: firebaseAdmin.credential.cert(keyPath),
261261
});

test/unit/index.spec.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// General
2+
import './firebase.spec';
3+
import './firebase-app.spec';
4+
import './firebase-namespace.spec';
5+
6+
// Utilities
7+
import './utils/error.spec';
8+
import './utils/validator.spec';
9+
import './utils/api-request.spec';
10+
11+
// Auth
12+
import './auth/auth.spec';
13+
import './auth/credential.spec';
14+
import './auth/user-record.spec';
15+
import './auth/token-generator.spec';
16+
import './auth/auth-api-request.spec';
17+
18+
// Messaging
19+
import './messaging/messaging.spec';

test/messaging.spec.ts renamed to test/unit/messaging/messaging.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ import * as sinon from 'sinon';
1212
import * as sinonChai from 'sinon-chai';
1313
import * as chaiAsPromised from 'chai-as-promised';
1414

15-
import * as utils from './utils';
16-
import * as mocks from './resources/mocks';
15+
import * as utils from '../utils';
16+
import * as mocks from '../../resources/mocks';
1717

18-
import {FirebaseApp} from '../src/firebase-app';
18+
import {FirebaseApp} from '../../../src/firebase-app';
1919
import {
2020
Messaging, MessagingOptions, MessagingPayload, MessagingDevicesResponse,
2121
BLACKLISTED_OPTIONS_KEYS, BLACKLISTED_DATA_PAYLOAD_KEYS,
22-
} from '../src/messaging/messaging';
22+
} from '../../../src/messaging/messaging';
2323

2424
chai.should();
2525
chai.use(sinonChai);

test/utils.ts renamed to test/unit/utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import * as _ from 'lodash';
22
import * as nock from 'nock';
33

4-
import * as mocks from './resources/mocks';
4+
import * as mocks from '../resources/mocks';
55

6-
import {FirebaseNamespace} from '../src/firebase-namespace';
7-
import {FirebaseApp, FirebaseAppOptions} from '../src/firebase-app';
6+
import {FirebaseNamespace} from '../../src/firebase-namespace';
7+
import {FirebaseApp, FirebaseAppOptions} from '../../src/firebase-app';
88

99
/**
1010
* Returns a new FirebaseApp instance with the provided options.

test/api-request.spec.ts renamed to test/unit/utils/api-request.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ import * as sinon from 'sinon';
1212
import * as sinonChai from 'sinon-chai';
1313
import * as chaiAsPromised from 'chai-as-promised';
1414

15-
import * as utils from './utils';
16-
import * as mocks from './resources/mocks';
15+
import * as utils from '../utils';
16+
import * as mocks from '../../resources/mocks';
1717

18-
import {FirebaseApp} from '../src/firebase-app';
18+
import {FirebaseApp} from '../../../src/firebase-app';
1919
import {
2020
SignedApiRequestHandler, HttpRequestHandler, ApiSettings,
21-
} from '../src/utils/api-request';
21+
} from '../../../src/utils/api-request';
2222

2323
chai.should();
2424
chai.use(sinonChai);

test/error.spec.ts renamed to test/unit/utils/error.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as chaiAsPromised from 'chai-as-promised';
77

88
import {
99
FirebaseError, FirebaseAuthError, FirebaseMessagingError, MessagingClientErrorCode,
10-
} from '../src/utils/error';
10+
} from '../../../src/utils/error';
1111

1212
chai.should();
1313
chai.use(sinonChai);

test/validator.spec.ts renamed to test/unit/utils/validator.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import * as chaiAsPromised from 'chai-as-promised';
66

77
import {
88
isBoolean, isNumber, isString, isNonEmptyString, isNonNullObject, isEmail, isPassword, isURL, isUid,
9-
} from '../src/utils/validator';
9+
} from '../../../src/utils/validator';
1010

1111

1212
chai.should();

0 commit comments

Comments
 (0)