diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/user/User.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/user/User.java
index 5b1e8c5bac1d45999e92292242f57bcd35c67097..cea8512dd946ce07d2901e37c3032dd9a9cbb07b 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/user/User.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/user/User.java
@@ -4,6 +4,7 @@ package ntnu.idatt2016.v233.SmartMat.entity.user;
 import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
+import lombok.Data;
 import lombok.NoArgsConstructor;
 import ntnu.idatt2016.v233.SmartMat.dto.enums.Authority;
 import org.springframework.security.core.GrantedAuthority;
@@ -23,6 +24,8 @@ import java.util.List;
  * @since 19.04.2023
  *
  */
+
+@Data
 @NoArgsConstructor
 @AllArgsConstructor
 @Entity(name = "users")
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/UserRepositoryTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/UserRepositoryTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..047a0c6008fade49fab56d4a1c80b1d29422bdd7
--- /dev/null
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/UserRepositoryTest.java
@@ -0,0 +1,131 @@
+package ntnu.idatt2016.v233.SmartMat.repository;
+
+import ntnu.idatt2016.v233.SmartMat.dto.enums.Authority;
+import ntnu.idatt2016.v233.SmartMat.entity.user.User;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+
+import java.sql.Date;
+import java.util.List;
+import java.util.Optional;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+@DataJpaTest // this annotation will setup an in-memory database for testing
+public class UserRepositoryTest {
+
+    @Autowired
+    private UserRepository userRepository;
+
+    @Test
+    void testSaveUser() {
+        User user = User.builder()
+                .username("testuser")
+                .password("password")
+                .enabled(true)
+                .email("testuser@example.com")
+                .firstName("Test")
+                .lastName("User")
+                .dateOfBirth(Date.valueOf("1990-01-01"))
+                .authority(Authority.USER)
+                .build();
+        userRepository.save(user);
+
+        Optional<User> retrievedUser = userRepository.findByUsername(user.getUsername());
+        assertTrue(retrievedUser.isPresent());
+        assertEquals(user.getUsername(), retrievedUser.get().getUsername());
+        assertEquals(user.getEmail(), retrievedUser.get().getEmail());
+        assertEquals(user.getFirstName(), retrievedUser.get().getFirstName());
+        assertEquals(user.getLastName(), retrievedUser.get().getLastName());
+        assertEquals(user.getDateOfBirth(), retrievedUser.get().getDateOfBirth());
+        assertEquals(user.getAuthorities(), retrievedUser.get().getAuthorities());
+
+        userRepository.delete(user);
+        assertFalse(userRepository.findByUsername(user.getUsername()).isPresent());
+    }
+
+
+    @Test
+    public void findAllTest() {
+        User user1 = new User();
+        user1.setUsername("testuser1");
+        user1.setPassword("password1");
+        user1.setEnabled(true);
+        user1.setEmail("testuser1@example.com");
+        user1.setFirstName("Test1");
+        user1.setLastName("User1");
+        userRepository.save(user1);
+        User user2 = new User();
+        user2.setUsername("testuser2");
+        user2.setPassword("password2");
+        user2.setEnabled(true);
+        user2.setEmail("testuser2@example.com");
+        user2.setFirstName("Test2");
+        user2.setLastName("User2");
+        userRepository.save(user2);
+        List<User> users = userRepository.findAll();
+        assertEquals(2, users.size());
+        assertEquals(user1.getUsername(), users.get(0).getUsername());
+        assertEquals(user2.getUsername(), users.get(1).getUsername());
+    }
+
+    @Test
+    public void deleteTest() {
+        User user = new User();
+        user.setUsername("testuser");
+        user.setPassword("password");
+        user.setEnabled(true);
+        user.setEmail("testuser@example.com");
+        user.setFirstName("Test");
+        user.setLastName("User");
+        userRepository.save(user);
+        userRepository.delete(user);
+        Optional<User> optionalUser = userRepository.findByUsername(user.getUsername());
+        assertFalse(optionalUser.isPresent());
+    }
+
+    @Test
+    void testOverwriteUser() {
+        // Create a new user and save it to the database
+        User user = User.builder()
+                .username("testuser")
+                .password("password")
+                .enabled(true)
+                .email("testuser@example.com")
+                .firstName("Test")
+                .lastName("User")
+                .dateOfBirth(Date.valueOf("1990-01-01"))
+                .authority(Authority.USER)
+                .build();
+        userRepository.save(user);
+
+        // Modify the user's details and save it again
+        User modifiedUser = User.builder()
+                .username("testuser")
+                .password("newpassword")
+                .enabled(false)
+                .email("newemail@example.com")
+                .firstName("New")
+                .lastName("Name")
+                .dateOfBirth(Date.valueOf("1995-01-01"))
+                .authority(Authority.ADMIN)
+                .build();
+        userRepository.save(modifiedUser);
+
+        // Verify that the modified user has replaced the original user
+        Optional<User> retrievedUser = userRepository.findByUsername(user.getUsername());
+        assertTrue(retrievedUser.isPresent());
+        assertEquals(modifiedUser.getUsername(), retrievedUser.get().getUsername());
+        assertEquals(modifiedUser.getEmail(), retrievedUser.get().getEmail());
+        assertEquals(modifiedUser.getFirstName(), retrievedUser.get().getFirstName());
+        assertEquals(modifiedUser.getLastName(), retrievedUser.get().getLastName());
+        assertEquals(modifiedUser.getDateOfBirth(), retrievedUser.get().getDateOfBirth());
+        assertEquals(modifiedUser.getAuthorities(), retrievedUser.get().getAuthorities());
+
+        // Clean up by deleting the modified user
+        userRepository.delete(modifiedUser);
+        assertFalse(userRepository.findByUsername(user.getUsername()).isPresent());
+    }
+
+}
diff --git a/src/main/resources/application-test.properties b/src/test/resources/application.properties
similarity index 100%
rename from src/main/resources/application-test.properties
rename to src/test/resources/application.properties