Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Commit 72414a9

Browse files
author
Parth Shah
committed
adding support for api versions in jwtinterceptor
1 parent 116ceb6 commit 72414a9

File tree

2 files changed

+19
-127
lines changed

2 files changed

+19
-127
lines changed

app/services/jwtInterceptor.service.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
return null;
1919

2020
var haveItAddItEndpoints = [
21-
{ method: 'GET', url: '\/v3\/challenges'},
21+
{ method: 'GET', url: '\/v3[\d.\-A-Za-z]*\/challenges'},
2222
{ method: 'GET', url: '\/v2\/challenges'},
2323

2424
// matchs everything besides /v3/members/{handle}/financial
25-
{ method: 'GET', url: '\/v3\/members\/\\w+\/(?!financial)\\w*'}
25+
{ method: 'GET', url: '\/v3[\d.\-A-Za-z]*\/members\/\\w+\/(?!financial)\\w*'}
2626
];
2727

2828
for (var i = 0; i < haveItAddItEndpoints.length; i++) {

app/services/jwtInterceptor.service.spec.js

Lines changed: 17 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,15 @@ describe('JWT Interceptor Service', function() {
6464
expect(TcAuthService.isAuthenticated).to.be.have.been.calledOnce;
6565
});
6666

67+
it("should not add token for /v3.0.0-beta/challenges", function() {
68+
var config = {
69+
method: "get",
70+
url: apiUrl + "/v3.0.0-beta/challenges/?filter=status%3Dactive"
71+
};
72+
expect(service.getToken(config)).to.not.exist;
73+
expect(TcAuthService.isAuthenticated).to.be.have.been.calledOnce;
74+
});
75+
6776
it("should redirect to login page for other endpoints", function() {
6877
var config = {
6978
method: "get",
@@ -74,136 +83,19 @@ describe('JWT Interceptor Service', function() {
7483
expect(TcAuthService.isAuthenticated).to.be.have.been.calledOnce;
7584
});
7685

77-
afterEach(function() {
78-
TcAuthService.isAuthenticated.restore();
79-
});
80-
});
81-
82-
/*
83-
describe("for authenticated users", function() {
84-
beforeEach(function() {
85-
bard.inject(this, 'TcAuthService');
86-
sinon.stub(TcAuthService, 'isAuthenticated').returns(true);
87-
$rootScope.$apply();
88-
});
89-
90-
describe(" with an valid token ", function() {
91-
beforeEach(function() {
92-
bard.inject(this, 'jwtHelper');
93-
sinon.stub(jwtHelper, 'isTokenExpired').returns(false);
94-
});
95-
96-
afterEach(function() {
97-
jwtHelper.isTokenExpired.restore();
98-
});
99-
100-
it("should return v2 token for /v3/members/test/stats", function() {
101-
var config = {
102-
method: "get",
103-
url: apiUrl + "/v3/members/test/stats"
104-
};
105-
expect(service.getToken(config)).to.equal("v2Token");
106-
expect(TcAuthService.isAuthenticated).to.be.have.been.calledOnce;
107-
expect(jwtHelper.isTokenExpired).to.be.have.been.calledOnce;
108-
});
109-
110-
it("should return v3 token for /v3/users/123", function() {
111-
var config = {
112-
method: "post",
113-
url: apiUrl + "/v3/users/123"
114-
};
115-
expect(service.getToken(config)).to.equal('v3Token');
116-
expect(TcAuthService.isAuthenticated).to.be.have.been.calledOnce;
117-
expect(jwtHelper.isTokenExpired).to.be.have.been.calledOnce;
118-
});
119-
120-
it("should return v2 token for /v2/badges", function() {
121-
var config = {
122-
method: "GET",
123-
url: apiUrl + "/v2/badges"
124-
};
125-
expect(service.getToken(config)).to.equal('v2Token');
126-
expect(TcAuthService.isAuthenticated).to.be.have.been.calledOnce;
127-
expect(jwtHelper.isTokenExpired).to.be.have.been.calledOnce;
128-
});
129-
});
130-
131-
describe(" with an invalid token and successful refreshToken call", function() {
132-
beforeEach(function() {
133-
bard.inject(this, 'jwtHelper', 'AuthTokenService', '$q');
134-
sinon.stub(jwtHelper, 'isTokenExpired').returns(true);
135-
sinon.stub(AuthTokenService, 'refreshToken', function(idToken) {
136-
var deferred = $q.defer();
137-
var resp = {
138-
data: {
139-
result: {
140-
content: {
141-
token: "newV3Token"
142-
}
143-
}
144-
}
145-
};
146-
147-
deferred.resolve(resp);
148-
return deferred.promise;
149-
});
150-
151-
});
152-
afterEach(function() {
153-
jwtHelper.isTokenExpired.restore();
154-
AuthTokenService.refreshToken.restore();
155-
});
156-
157-
it("should retrieve a valid refresh token", function() {
158-
var config = {
159-
method: "get",
160-
url: apiUrl + "/v3/users/123"
161-
};
162-
var retPromise = service.getToken(config);
163-
$rootScope.$digest();
164-
expect(retPromise.$$state.value).to.equal("newV3Token");
165-
expect(TcAuthService.isAuthenticated).to.be.have.been.calledOnce;
166-
expect(jwtHelper.isTokenExpired).to.be.have.been.calledOnce;
167-
expect(AuthTokenService.refreshToken).to.be.have.been.calledWith("v3Token");
168-
expect(AuthTokenService.setV3Token).to.be.have.been.calledWith("newV3Token");
169-
});
170-
});
171-
172-
describe("with an invalid token and un-successful refreshToken call", function() {
173-
beforeEach(function() {
174-
bard.inject(this, 'jwtHelper', 'AuthTokenService', '$q');
175-
sinon.stub(jwtHelper, 'isTokenExpired').returns(true);
176-
sinon.stub(AuthTokenService, 'refreshToken', function(idToken) {
177-
var deferred = $q.defer();
178-
deferred.reject("bad request");
179-
return deferred.promise;
180-
});
181-
});
182-
183-
afterEach(function() {
184-
jwtHelper.isTokenExpired.restore();
185-
AuthTokenService.refreshToken.restore();
186-
});
187-
188-
it("should redirect to login", function() {
189-
var config = {
190-
method: "get",
191-
url: apiUrl + "/v3/users/123"
192-
};
193-
var retPromise = service.getToken(config);
194-
$rootScope.$digest();
195-
expect(retPromise.$$state.value).to.be.null;
196-
expect(TcAuthService.isAuthenticated).to.be.have.been.calledOnce;
197-
expect(jwtHelper.isTokenExpired).to.be.have.been.calledOnce;
198-
expect(AuthTokenService.refreshToken).to.be.have.been.calledWith("v3Token");
199-
expect($state.go).to.be.have.been.calledWith('login');
200-
});
86+
it("should redirect to login page for other endpoints", function() {
87+
var config = {
88+
method: "get",
89+
url: apiUrl + "/v3.0.0-BETA/members/test"
90+
};
91+
service.getToken(config);
92+
expect($state.go).to.be.have.been.calledWith('login');
93+
expect(TcAuthService.isAuthenticated).to.be.have.been.calledOnce;
20194
});
20295

20396
afterEach(function() {
20497
TcAuthService.isAuthenticated.restore();
20598
});
20699
});
207-
*/
208100

209101
});

0 commit comments

Comments
 (0)