diff --git a/src/components/user/theme-picker.cy.tsx b/src/components/user/theme-picker.cy.tsx
new file mode 100644
index 0000000..23dc01b
--- /dev/null
+++ b/src/components/user/theme-picker.cy.tsx
@@ -0,0 +1,41 @@
+import React from 'react';
+import { ThemePicker } from '@/components/user/theme-picker';
+import { ThemeProvider } from '../theme-provider';
+
+describe('', () => {
+ it('renders', () => {
+ cy.mount();
+ });
+
+ it('toggle open and close', () => {
+ cy.mount();
+ cy.getBySel('theme-picker').click();
+ cy.getBySel('theme-picker-content').should('exist');
+ cy.get('html').click();
+ cy.getBySel('theme-picker-content').should('not.exist');
+ });
+
+ it('enable dark mode', () => {
+ cy.mount(
+
+
+ ,
+ );
+
+ cy.getBySel('theme-picker').click();
+ cy.getBySel('dark-theme').click();
+ cy.get('html').should('have.attr', 'data-theme', 'dark');
+ });
+
+ it('enable light mode', () => {
+ cy.mount(
+
+
+ ,
+ );
+
+ cy.getBySel('theme-picker').click();
+ cy.getBySel('light-theme').click();
+ cy.get('html').should('have.attr', 'data-theme', 'light');
+ });
+});
diff --git a/src/components/user/theme-picker.tsx b/src/components/user/theme-picker.tsx
index 5341c3c..3ceca4c 100644
--- a/src/components/user/theme-picker.tsx
+++ b/src/components/user/theme-picker.tsx
@@ -18,20 +18,26 @@ export function ThemePicker() {
return (
-
-
- setTheme('light')}>
+
+ setTheme('light')}
+ data-cy='light-theme'
+ >
Light
- setTheme('dark')}>
+ setTheme('dark')} data-cy='dark-theme'>
Dark
- setTheme('system')}>
+ setTheme('system')}
+ data-cy='system-theme'
+ >
System