Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3,623 changes: 3,474 additions & 149 deletions client-side/package-lock.json

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion client-side/src/stories/GenericInput/genericInput.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
import { INVALID_INPUT_MESSAGE } from './constants';
import { TextField, InputAdornment } from '@mui/material';

import { INVALID_INPUT_MESSAGE } from './constants';


import '../GenericInput/genericInput.scss';

const GenericInput = ({
Expand Down Expand Up @@ -85,6 +88,7 @@ GenericInput.propTypes = {
width: PropTypes.string,
icon: PropTypes.elementType,
validation: PropTypes.func,
disabled:PropTypes.string
};

export default GenericInput;
5 changes: 5 additions & 0 deletions server-side/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
PORT=5000
password=EuACQK5n92JI3vn4
DB_URL=mongodb+srv://sh3000444:EuACQK5n92JI3vn4@cluster0.2ttcjcg.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0
BCRYPT_SALT=10
JWT_SECRET=aetvbkiy
2 changes: 0 additions & 2 deletions server-side/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ app.use(pageNotFound);
app.use(serverErrors);

const port = process.env.PORT;
app.listen(port, () => {
});


export default app;
9 changes: 7 additions & 2 deletions server-side/config/db.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@

import mongoose from 'mongoose';


export const connectMongo=()=>{
mongoose.connect(process.env.DB_URL)
.then(()=>console.log('mongo db connected'))
.catch(err=>console.log(err.message));
.then(() => {
console.log('MongoDB connected');
})
.catch(err => {
console.error('MongoDB connection error:', err);
});
}

export const disconnectMongo = async () => {
Expand Down
2 changes: 1 addition & 1 deletion server-side/controllers/preference.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export const deletePreference = async (req, res, next) => {

const PreferenceForDelet = await Preference.findByIdAndDelete(id);
if (!PreferenceForDelet)
return next({ message: 'Preferencs not found !!' })
return next({ message: 'Preferencs not found !!',status:404 })

res.json({ message: 'deleted succesfully!!' }).status(204)
} catch (error) {
Expand Down
2 changes: 1 addition & 1 deletion server-side/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"jest": "^29.7.0",
"supertest": "^7.0.0"
},
"babel": {
"babel": {
"presets": [
"@babel/preset-env"
]
Expand Down
2 changes: 1 addition & 1 deletion server-side/tests/app.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import app from '../app.js';
import { connectMongo, disconnectMongo } from '../config/db.js'

beforeAll(async () => {
await connectMongo(); // Connects to a database before the tests
await connectMongo(); // Connects to a database before the tests
});

afterAll(async () => {
Expand Down
60 changes: 60 additions & 0 deletions server-side/tests/preference.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import request from 'supertest';
import app from '../app.js';


describe('GET /preferences', () => {
it('should return all preferences', async () => {
const response = await request(app).get('/preferences');
expect(response.status).toBe(200);
expect(response.body).toBeDefined();
expect(response.body).toBeInstanceOf(Array);

});
});
describe( `GET /preferences/:id` , () =>{
it('should return preferences by id' , async () =>{
const id='6694e5190d8e4ee0aab3d161'
const response = await request(app).get(`/preferences/${id}`)
expect(response.status).toBe(200);
expect(response.body).toBeDefined();
})
});

describe( `POST /preferences` , () =>{
it('should add preferences ' , async () =>{
const response = await request(app).post(`/preferences`).send(
{
"emailFrequency": "never",
"sendNotificationTime": 67,
"soundVoice": "06×\u009c×\u009b×\u0094 ×\u0093×\u0095×\u0093×\u0099.mp3"
})

expect(response.body).toBeDefined()
expect(response.status).toBe(200)// Check if the response has an ID
})
});

describe( `PUT /preferences/:id` , () =>{
it('should update preferences by id' , async () =>{
const id='6694e5190d8e4ee0aab3d161'
const response = await request(app).put(`/preferences/${id}`).send(
{
"_id": "6694e5190d8e4ee0aab3d161",
"emailFrequency": "never",
"sendNotificationTime": 67,
"soundVoice": "06×\u009c×\u009b×\u0094 ×\u0093×\u0095×\u0093×\u0099.mp3"
})

expect(response.status).toBe(200);
expect(response.body).toBeDefined();
})
});

describe( `DELETE /preferences/:id` , () =>{
it('should DELETE preferences ' , async () =>{
const id='6694e5220d8e4ee0aab3d163'
const response = await request(app).delete(`/preferences/${id}`)
expect(response.status).toBe(200);
expect(response.body).toBeDefined();
})
});
56 changes: 56 additions & 0 deletions server-side/tests/websites.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import request from 'supertest';
import app from '../app.js';


describe('GET /websites', ()=>{

it('should return all website', async()=>{
const response = await request(app).get('/websites')
expect(response.status).toBe(200);
expect(response.body).toBeDefined();
expect(response.body).toBeInstanceOf(Array);
});
});
describe('GET /websites/:id',() =>{
it('should return website by id' , async() =>{
const id = '669cdf6dd4542df95fcee586'
const response = await request(app).get(`/websites/${id}`)
expect(response.status).toBe(200);
expect(response.body).toBeDefined();

});
});
describe('POST /websites' ,()=>{
it('should add website', async()=>{
const response = await request(app).post('/websites').send(
{
"name": "test",
"url": "https:/test.com"
}
)
expect(response.body).toBeDefined()
expect(response.status).toBe(200)
})
});
describe('PUT /websites/:id' ,()=>{
it('should update websites',async()=>{
const id = '66b259f6ce17f1a868e4a06f'
const response = await request(app).put(`/websites/${id}`).send(
{
"name": "Glassdor",
"url": "https:/glassdor.com"
}
)
expect(response.body).toBeDefined()
expect(response.status).toBe(200)

})
});
describe('DELETE /websites/:id' ,()=>{
it('should delete websites' ,async ()=>{
const id ='66b25a22407a138f4ba559e0'
const response = await request(app).delete(`/websites/${id}`)
expect(response.status).toBe(204);
expect(response.body).toBeDefined();
})
});
Binary file not shown.
Binary file removed server-side/uploads/AlbumArtSmall.jpg
Binary file not shown.
Binary file removed server-side/uploads/IMG_4545.JPG
Binary file not shown.
Binary file removed server-side/uploads/IMG_4639.JPG
Binary file not shown.
Binary file removed server-side/uploads/rimon.jpg
Binary file not shown.
Binary file removed server-side/uploads/גירפה.jpg
Binary file not shown.
Binary file removed server-side/uploads/דוב.jpg
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed server-side/uploads/סוס.jpg
Binary file not shown.