작성
·
138
0
통합테스트 회원가입 로그인 하고 있는데요
맨 마지막에 아래 코드를 넣어도 계속 오류가 발생합니다.
afterAll(async () => {
await sequelize.sync({ force: true });
});
[오류내용]
● POST /join › 이미 로그인 했으면 redirect /
expected "Location" of "/?error=%EB%A1%9C%EA%B7%B8%EC%9D%B8%20%ED%95%9C%20%EC%83%81%ED%83%9C%EC%9E%85%EB%8B%88%EB%8B%A4.", got "/error=%EB%A1%9C%EA%B7%B8%EC%9D%B8%ED%95%9C%20%EC%83%81%ED%83%9C%EC%9E%85%EB%8B%88%EB%8B%A4."
43 | password: 'nodejsbook',
44 | })
> 45 | .expect('Location', `/?error=${message}`)
| ^
46 | .expect(302, done);
47 | });
48 |
at Object.<anonymous> (routes/auth.test.js:45:14)
[원본소스는 아래와 같습니다.]
.expect('Location', `/?error=${message}`); 이부분 주석 해제를 하면 오류가 발생합니다. 왜 그런건가요?
const request = require('supertest');
const { sequelize } = require('../models');
const app = require('../app');
beforeAll(async () => {
await sequelize.sync();
});
describe('POST /join', () => {
test('로그인 안 했으면 가입', (done) => {
request(app)
.post('/auth/join')
.send({
email: 'zerohch0@gmail.com',
nick: 'zerocho',
password: 'nodejsbook',
})
.expect('Location', '/')
.expect(302, done);
});
});
describe('POST /join', () => {
const agent = request.agent(app);
beforeEach((done) => {
agent
.post('/auth/login')
.send({
email: 'zerohch0@gmail.com',
password: 'nodejsbook',
})
.end(done);
});
test('이미 로그인 했으면 redirect /', (done) => {
const message = encodeURIComponent('로그인 한 상태입니다.');
agent
.post('/auth/join')
.send({
email: 'zerohch1@gmail.com',
nick: 'zerocho1',
password: 'nodejsbook',
})
.expect('Location', `/?error=${message}`)
.expect(302, done);
});
});
afterAll(async () => {
await sequelize.sync({ force: true });
});
답변 1
0
decodeURI('%EB%A1%9C%EA%B7%B8%EC%9D%B8%20%ED%95%9C%20%EC%83%81%ED%83%9C%EC%9E%85%EB%8B%88%EB%8B%A4.", got "/error=%EB%A1%9C%EA%B7%B8%EC%9D%B8%ED%95%9C%20%EC%83%81%ED%83%9C%EC%9E%85%EB%8B%88%EB%8B%A4')
"로그인 한 상태입니다.", got "/error=로그인한 상태입니다"
띄어쓰기 때문이네요.
답변 주신것처럼
"로그인 한 상태입니다."에서 "로그인한 상태입니다,"로 변경해도 똑같이 에러가 발생합니다.