Skip to content
Snippets Groups Projects
Select Git revision
  • 60fcb9d64e2b28dc238fbc12729a0cd12b8f9ddc
  • main default protected
  • br_A
3 results

note3.md

Blame
  • schedule.test.js 8.16 KiB
    // test/schedule.test.js
    
    const sequelize = require('../config/sequelize');
    const User = require('../models/User');
    const Friend = require('../models/Friend');
    const Schedule = require('../models/Schedule');
    const scheduleService = require('../services/scheduleService'); // scheduleService 임포트
    
    beforeAll(async () => {
      await sequelize.sync({ force: true });
      // 더미 사용자 생성
      await User.bulkCreate([
        { id: 1, name: 'Alice', email: 'alice@example.com' },
        { id: 2, name: 'Bob', email: 'bob@example.com' },
      ]);
    
      // 더미 친구 관계 생성
      await Friend.create({
        id: 1,
        requester_id: 1,
        receiver_id: 2,
        status: 'ACCEPTED',
      });
    
      // 더미 스케줄 생성
      await Schedule.create({
        id: 1,
        user_id: 1,
        title: 'Alice\'s Fixed Schedule',
        start_time: new Date('2024-05-01T09:00:00Z'),
        end_time: new Date('2024-05-01T10:00:00Z'),
        is_fixed: true,
        expiry_date: null,
      });
    
      await Schedule.create({
        id: 2,
        user_id: 1,
        title: 'Alice\'s Flexible Schedule',
        start_time: new Date('2024-05-02T11:00:00Z'),
        end_time: new Date('2024-05-02T12:00:00Z'),
        is_fixed: false,
        expiry_date: new Date('2024-05-08T00:00:00Z'), // 다음 월요일
      });
    });
    
    afterAll(async () => {
      // 데이터베이스 연결 종료
      await sequelize.close();
    });
    
    describe('Schedule Service', () => {
      describe('createSchedule', () => {
        test('should create a new fixed schedule successfully', async () => {
          const scheduleData = {
            userId: 2,
            title: 'Bob\'s Fixed Schedule',
            start_time: new Date('2024-05-03T14:00:00Z'),
            end_time: new Date('2024-05-03T15:00:00Z'),
            is_fixed: true,
          };
    
          const schedule = await scheduleService.createSchedule(scheduleData);
    
          expect(schedule).toBeDefined();
          expect(schedule.user_id).toBe(2);
          expect(schedule.title).toBe('Bob\'s Fixed Schedule');
          expect(schedule.is_fixed).toBe(true);
          expect(schedule.expiry_date).toBeNull();
        });