forked from ryanmwangi/CalMerger
Compare commits
3 commits
199a74a5d4
...
2bd5c967af
Author | SHA1 | Date | |
---|---|---|---|
|
2bd5c967af | ||
|
c8f3771717 | ||
5b40bf5d75 |
5 changed files with 36 additions and 49 deletions
|
@ -2,13 +2,13 @@ import express from 'express';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import routes from './routes.js';
|
import routes from './routes.js';
|
||||||
|
|
||||||
|
console.log(`Starting server in ${process.cwd()}`);
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
|
|
||||||
|
|
||||||
// Serve static files from the 'public' directory
|
// Serve static files from the 'public' directory
|
||||||
app.use(express.static(path.join(process.cwd(), 'public')));
|
app.use(express.static(path.join(process.cwd(), 'public')));
|
||||||
app.use('/', routes);
|
app.use('/', routes);
|
||||||
|
|
||||||
|
export default app;
|
||||||
export default app;
|
|
|
@ -1,8 +1,6 @@
|
||||||
import request from 'supertest';
|
import request from 'supertest';
|
||||||
import express from 'express';
|
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { jest } from '@jest/globals';
|
|
||||||
import { fileURLToPath } from 'url';
|
import { fileURLToPath } from 'url';
|
||||||
|
|
||||||
// ESM equivalent of __dirname
|
// ESM equivalent of __dirname
|
||||||
|
@ -15,15 +13,12 @@ const EXPECTED_OUTPUTS_DIR = path.join(__dirname, 'expected_outputs');
|
||||||
|
|
||||||
let server;
|
let server;
|
||||||
process.chdir(__dirname)
|
process.chdir(__dirname)
|
||||||
// console.log(process.cwd());
|
const app = await import('../src/server');
|
||||||
import app from '../src/server.js';
|
|
||||||
|
|
||||||
const normalizeLineEndings = (str) => str.replace(/\r\n/g, '\r\n').trimEnd(); // Normalize to CRLF
|
|
||||||
|
|
||||||
describe('Calendar Merging API', () => {
|
describe('Calendar Merging API', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
// Start the server
|
// Start the server
|
||||||
server = app.listen(0);
|
server = app.default.listen(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
|
@ -59,19 +54,15 @@ describe('Calendar Merging API', () => {
|
||||||
expect(response.status).toBe(200);
|
expect(response.status).toBe(200);
|
||||||
// Check if the file was created in the test directory
|
// Check if the file was created in the test directory
|
||||||
const filePath = path.join(CALENDARS_DIR, 'nextcloud-minimal.ics');
|
const filePath = path.join(CALENDARS_DIR, 'nextcloud-minimal.ics');
|
||||||
// console.log('Checking if file exists at:', filePath);
|
console.log('Checking if file exists at:', filePath);
|
||||||
expect(fs.existsSync(filePath)).toBe(true);
|
expect(fs.existsSync(filePath)).toBe(true);
|
||||||
|
|
||||||
// Load expected output
|
// Load expected output
|
||||||
const expectedOutput = fs.readFileSync(input, 'utf8');
|
const expectedOutput = fs.readFileSync(input, 'utf8');
|
||||||
const actualOutput = fs.readFileSync(filePath, 'utf8');
|
const actualOutput = fs.readFileSync(filePath, 'utf8');
|
||||||
|
|
||||||
// Normalize line endings
|
|
||||||
const normalizedActual = normalizeLineEndings(actualOutput);
|
|
||||||
const normalizedExpected = normalizeLineEndings(expectedOutput);
|
|
||||||
|
|
||||||
//compare
|
//compare
|
||||||
expect(normalizedActual).toBe(normalizedExpected);
|
expect(actualOutput).toBe(expectedOutput);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Preserve google calendar', async () => {
|
test('Preserve google calendar', async () => {
|
||||||
|
@ -91,46 +82,42 @@ describe('Calendar Merging API', () => {
|
||||||
expect(response.status).toBe(200);
|
expect(response.status).toBe(200);
|
||||||
// Check if the file was created in the test directory
|
// Check if the file was created in the test directory
|
||||||
const filePath = path.join(CALENDARS_DIR, 'google-calendar-minimal.ics');
|
const filePath = path.join(CALENDARS_DIR, 'google-calendar-minimal.ics');
|
||||||
// console.log('Checking if file exists at:', filePath);
|
console.log('Checking if file exists at:', filePath);
|
||||||
expect(fs.existsSync(filePath)).toBe(true);
|
expect(fs.existsSync(filePath)).toBe(true);
|
||||||
|
|
||||||
// Load expected output
|
// Load expected output
|
||||||
const expectedOutput = fs.readFileSync(input, 'utf8');
|
const expectedOutput = fs.readFileSync(input, 'utf8');
|
||||||
const actualOutput = fs.readFileSync(filePath, 'utf8');
|
const actualOutput = fs.readFileSync(filePath, 'utf8');
|
||||||
|
|
||||||
// Normalize line endings
|
|
||||||
const normalizedActual = normalizeLineEndings(actualOutput);
|
|
||||||
const normalizedExpected = normalizeLineEndings(expectedOutput);
|
|
||||||
|
|
||||||
//compare
|
//compare
|
||||||
expect(normalizedActual).toBe(normalizedExpected);
|
expect(actualOutput).toBe(expectedOutput);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// test('Preserve date-based calendar', async () => {
|
test('Preserve date-based calendar', async () => {
|
||||||
// const input = getTestCalendarFilename('US_Holidays.ics');
|
const input = getTestCalendarFilename('US_Holidays.ics');
|
||||||
// const response = await request(server)
|
const response = await request(server)
|
||||||
// .post('/merge')
|
.post('/merge')
|
||||||
// .send({
|
.send({
|
||||||
// linkGroupName: 'US Holidays',
|
linkGroupName: 'US Holidays',
|
||||||
// calendars: [
|
calendars: [
|
||||||
// {
|
{
|
||||||
// url: input,
|
url: input,
|
||||||
// prefix: '',
|
prefix: '',
|
||||||
// override: false,
|
override: false,
|
||||||
// },
|
},
|
||||||
// ],
|
],
|
||||||
// });
|
});
|
||||||
// expect(response.status).toBe(200);
|
expect(response.status).toBe(200);
|
||||||
// // Check if the file was created in the test directory
|
// Check if the file was created in the test directory
|
||||||
// const filePath = path.join(CALENDARS_DIR, 'US_Holidays.ics');
|
const filePath = path.join(CALENDARS_DIR, 'US_Holidays.ics');
|
||||||
// console.log('Checking if file exists at:', filePath);
|
console.log('Checking if file exists at:', filePath);
|
||||||
// expect(fs.existsSync(filePath)).toBe(true);
|
expect(fs.existsSync(filePath)).toBe(true);
|
||||||
// // Load expected output and compare
|
// Load expected output and compare
|
||||||
// const expectedOutput = fs.readFileSync(input, 'utf8');
|
const expectedOutput = fs.readFileSync(input, 'utf8');
|
||||||
// const actualOutput = fs.readFileSync(filePath, 'utf8');
|
const actualOutput = fs.readFileSync(filePath, 'utf8');
|
||||||
// expect(actualOutput).toBe(expectedOutput);
|
expect(actualOutput).toBe(expectedOutput);
|
||||||
// });
|
});
|
||||||
|
|
||||||
// test('Merge date-based calendar', async () => {
|
// test('Merge date-based calendar', async () => {
|
||||||
// const response = await request(server)
|
// const response = await request(server)
|
||||||
|
|
|
@ -13,4 +13,4 @@ UID:6tbrvsitniuu72li7kk15gou2b@google.com
|
||||||
SUMMARY:progodessey
|
SUMMARY:progodessey
|
||||||
SEQUENCE:0
|
SEQUENCE:0
|
||||||
END:VEVENT
|
END:VEVENT
|
||||||
END:VCALENDAR
|
END:VCALENDAR
|
|
@ -41,4 +41,4 @@ STATUS:CONFIRMED
|
||||||
SUMMARY:do
|
SUMMARY:do
|
||||||
TRANSP:OPAQUE
|
TRANSP:OPAQUE
|
||||||
END:VEVENT
|
END:VEVENT
|
||||||
END:VCALENDAR
|
END:VCALENDAR
|
|
@ -30,4 +30,4 @@ RRULE:FREQ=WEEKLY;BYDAY=WE
|
||||||
SUMMARY:JR Weekly Check-In
|
SUMMARY:JR Weekly Check-In
|
||||||
SEQUENCE:0
|
SEQUENCE:0
|
||||||
END:VEVENT
|
END:VEVENT
|
||||||
END:VCALENDAR
|
END:VCALENDAR
|
Loading…
Add table
Reference in a new issue