-
Notifications
You must be signed in to change notification settings - Fork 14
Integration tests for MembraneRTC
client
#45
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still think we should check the situation when multiple people leave the room at once and the room is still alive.
But the code doing that is basically there |
Maybe I don't understand something but I don't see there any code responsible for leaving room by peers. |
Ohh, I misunderstood you... I will add the burst leaving |
56957d0
to
f26294f
Compare
docker-compose.yml
Outdated
# command: bash -c "mix deps.update --all && ls /root/.cache/ms-playwright && mix integration" | ||
environment: | ||
# VIRTUAL_HOST: "videoroom.membraneframework.org" | ||
# LETSENCRYPT_HOST: "videoroom.membraneframework.org" | ||
# USE_INTEGRATED_TURN: "true" | ||
# INTEGRATED_TURN_IP: "135.181.203.255" | ||
# INTEGRATED_TURN_PORT_RANGE: "50000-50500" | ||
# INTEGRATED_TCP_TURN_PORT: "50500" | ||
MIX_ENV: test | ||
ports: | ||
# - "50000-50500:50000-50500/tcp" | ||
# - "50000-50500:50000-50500/udp" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh, I see. I think we should turn them on
# turn_servers: [], | ||
# dtls_pkey: Application.get_env(:test_videoroom, :dtls_pkey), | ||
# dtls_cert: Application.get_env(:test_videoroom, :dtls_cert) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's delete this
# stun_servers: state.network_options[:stun_servers] || [], | ||
# turn_servers: state.network_options[:turn_servers] || [], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as above
4e2af8a
to
ea3247e
Compare
ea3247e
to
fdf7397
Compare
Integration tests with the use of Playwright
Because of the problems described below tests were rewrote to Playwright. The creation of
Dockerfile
anddocker-compose.yml
is aimed to help in future debugging problems inside CI docker.closes #5
Old issue about tests with the use of Wallaby
Problem with putting the integration tests inside docker:
It happens that libnice does not want to cooperate when it is being put inside docker, no matter if it is docker or host network. The results are unpredictable, when the first peer joins then he will get connected successfully but when the second peer joins then the libnice gets stuck in CONNECTING state (just for the first peer, the second one can see the first one without any problems).
The whole problem happens when the first peer is in a READY state and ice restart gets triggered. It automatically gets into CONNECTING state awaiting a new nominated ICE pair but none gets nominated therefore the agent is stuck in CONNECTING state forever. This is unpredictable but sometimes happens to work, this situation does not happen when developing locally without docker. Due to such thing happening it does not make any sense to put integration tests inside docker as it will fail most of the time.
The problem may be connected with lower resources available docker compared to those of an operating system when using locally, probably happened before on a weaker macbook without docker.