Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix node_env when tests run #339

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

faciledictu
Copy link
Contributor

@faciledictu faciledictu commented Aug 3, 2023

Попытался сделать, чтобы playwright для E2E-тестирования запускал сервер не в окружении NODE_ENV=development, а в NODE_ENV=test, чтобы он не писал в БД (с этой опцией сервер хранит БД в памяти). См. case 'test':

Теперь для добавил команду yarn run start:test, однако наблюдается ошибка.

В окружении "NODE_ENV=test" какие-то проблемы с сохранением сессии. То есть пользователь логинится, а потом ничего не может сделать (типа создать сниппет или даже разлогиниться), потому что сервер его не авторизует больше. Если этой командой запустить деплой, то будет понятно, о чем я.

@faciledictu
Copy link
Contributor Author

Помогите с решением этой задачки @fey @dzencot

@fey fey requested a review from dzencot August 14, 2023 07:34
@faciledictu
Copy link
Contributor Author

@dzencot еще раз тегну) Помогите доделать.

@dzencot
Copy link
Collaborator

dzencot commented Sep 3, 2023

сорри, я пока не смог разобраться. Завтра еще посмотрю

@faciledictu
Copy link
Contributor Author

Привет! Напоминаю.

Была проблема:

  1. при выполнении e2e-тестов данные пишется в базу sqlite на диске (точно как при разворачивали проекта в dev-окружении
  2. Повторный запуск тестов уже приводит к ошибкам типа "пользователь с таким именем уже зарегистрирован". Ну в базе данных же он был создан, понятно
  3. Однако для тестов на бэке есть специальный конфиг БД, который предотвращает такое (база создается в оперативной памяти, а не на диске). Конфиг при запуске тестов не использовался

Пытался заставить запускаться тесты в окружении NODE_ENV=test через редактирование конфигов, но столкнулся с проблемами.

Задача так и не решена?

@faciledictu
Copy link
Contributor Author

faciledictu commented Apr 26, 2024

@dzencot @fey

@fey
Copy link
Contributor

fey commented Apr 26, 2024

скорее всего нет. Кстати у меня была подобная проблема с фастифаем. Мб просто в мейк команду закинуть NODE_ENV=test в команде для тестов

@faciledictu
Copy link
Contributor Author

faciledictu commented Apr 26, 2024

скорее всего нет. Кстати у меня была подобная проблема с фастифаем. Мб просто в мейк команду закинуть NODE_ENV=test в команде для тестов

@fey
В моем PR была прописана не в мейке, а в скрипте в package.json. Фактически там сделан один скрипт для запуска dev и один для запуска test. Кажется, в майке было нельзя, потому что не мейк поднимает проект, а playwright запускает команду, которая прописана в его конфиге. В конфиге, который работает сейчас на проекте, playwright запускает среду в dev, а ему надо подсунуть команду для запуска test. Я прописал эту команду, и получилось при запуске тестов запустить проект в окружении, где NODE_ENV=test. То есть формально задача решена.

Но в этом случае проблема: не сохраняется сессия. То есть

  1. тесты регают юзера, все проходит успешно
  2. потом пытаются создать сниппет, а вместо его страницы профиля тесты видят приглашение к логину, будто бы никто не залогинен.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants