공부/JavaScript
-
TI 197일 - node에서 service layer unit test공부/JavaScript 2022. 7. 14. 21:03
로직이 너무 단순하다 보니 어제랑 별 다를게 없다. import sinon from 'ts-sinon'; import CouponModel from '../../layered/model/Coupon'; import CouponService from '../../layered/service/CouponService'; import { assert } from 'chai'; describe('쿠폰 service', async () => { afterEach(() => { sinon.restore(); }); it('발행 가능한 쿠폰이 있으면 true를 반환한다', async () => { sinon.mock(CouponModel).expects('getItems').returns([""]); assert.e..
-
TIL 196일 - node에서 presentation 레이어 유닛 테스트 구현해보기공부/JavaScript 2022. 7. 13. 21:14
시간이 좀 걸리긴 했는데 아래처럼 구현이 가능했다. Couponservice 안에는 hasIssuableCoupons 메서드가 있고, 이 값이 true, false인 경우를 mock해서 테스트를 진행해 봤다. 근데 조금 맘에 안 드는 부분은 에러가 발생하는 부분인데, 찾아보면 assert.throw(fn, Error, errorMessage) 이런 식으로 사용 하라는데 아무리 해봐도 안된다... 근데 다른 사람도 안 돼서 그런지 다른 방법으로 작성한 코드를 발견했다...! 아무튼 완성...! 내일은 service layer 코드 작성을 해봐야 겠다. import sinon from 'ts-sinon'; import CouponService from '../../layered/service/CouponSe..
-
TIL 195일 - sinon.js, chai, mocah공부/JavaScript 2022. 7. 12. 21:44
sinon.js란? js를 위한 스텁, 목, 스파이 기능을 제공하는 테스트 툴이다. stub 요렇게 사용할 수 있다. (당연히 실패함) import { assert } from "chai"; import { stub } from "sinon"; describe("tes1t", () => { it("test11", async () => { const stubAnyFunction = stub(); stubAnyFunction.returns(false); assert.equal(true, stubAnyFunction()); }); }); Mock mock을 쓰면 아래처럼도 쓸 수 있다. 근데 이상한게 UserModel을 다른 파일에 두면 에러가 발생한다. 음... 뭔가 export랑 관련된 이슈가 있는 거 같..
-
TIL 194일 - sequelize mock공부/JavaScript 2022. 7. 11. 22:03
새로운 Sequelize 프로젝트 일단은 다른 스택들은 제외하고 테스트를 해보는 게 좋을 거 같아서, 새로운 sequelize 프로젝트를 만들었다. import express from "express"; import { DataTypes, Sequelize } from "sequelize"; const app = express(); const port = 3000; const sequelize = new Sequelize("node_test", "user_name", "password", { host: "localhost", dialect: "postgres", }); const User = sequelize.define( "User", { // Model attributes are defined her..
-
TIL 190일 - node.js 테스트 코드...공부/JavaScript 2022. 7. 7. 23:51
컨트롤러 export const hasIssueableCoupon = async (_: any, args: any) => { const { benefitCompanyID }:{benefitCompanyID:string} = args if(!benefitCompanyID){ throw Error("invalid argument exception"); } return await CouponService.hasIssueableCouponByBenefitCompanyId(benefitCompanyID); } 서비스 export abstract class CouponService { public static async hasIssueableCouponByBenefitCompanyId(benefitCompanyID..
-
TIL 189일 - node.js unit test 툴공부/JavaScript 2022. 7. 7. 00:20
어... 원래는 JPA 하려고 했는데 회사에서 롤이 바뀌게 되어서 node.js unit test 툴을 알아보고 있따. Mocha 라는 node.js의 테스트툴이 있고 이거 기반으로 테스트 코드를 만들어 봤다. spring에서 테스트코드를 작성해 봐서 그런지 그래도 기본적인 것은 비슷했다. describe('쿠폰', async () => { it('쿠폰은 처음 생성 시 발행 가능한 상태가 됩니다.', () => { const coupon = new Coupon(moment(EXPIRED_AT_BY_NOW).add(1,"h").format()); assert.equal(coupon.isIssuedAble,true); }); it('쿠폰의 유효기간이 지나면 발행 불가능한 상태가 됩니다.', () => { c..
-
TIL 136일 - next.js header공부/JavaScript 2022. 5. 14. 17:27
https://nextjs.org/docs/advanced-features/security-headers Advanced Features: Security Headers | Next.js Improve the security of your Next.js application by adding HTTP response headers. nextjs.org next.js로 구현된 페이지에 접속했을 때, next.js가 반환하는 헤더에 대한 설정을 할 수 있는 기능이다. Content-Security-Policy 요런 정책이 있다는 것을 처음알았다. 요즘 조금 공부가 겉도는 느낌이 든다. 내일부턴 다시 엔틀러 할 거니까 괜찮겠지