* Add license load metric to About screen
- Add REST endpoint to fetch license load percentage
- Display load metric in About screen next to server version
Fixes: https://mattermost.atlassian.net/browse/MM-63728
* MM-63728: Address PR feedback from enahum
- Move license load metric fetch to a remote action
- Use isMinimumServerVersion to check for server 10.8.0 or higher
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Simplify getLicenseLoadMetric to directly return number
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Move getLicenseLoadMetric to dedicated license.ts file
- Create new remote action file specifically for license-related functions
- Add test file for the license actions
- Update imports in about.tsx
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Remove redundant license check in about.tsx
- Rely on getLicenseLoadMetric to handle the license check
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Update E2E tests for license load metric
- Add license load metric test IDs to about screen
- Update E2E test to check for load metric when license is enabled
- Handle cases where server might not support the feature
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* recover app/actions/remote/general.ts
* MM-63728: Return error from getLicenseLoadMetric instead of silent failure
- Remove silent failure and debug logging
- Return the error object when API call fails
- Update the About component to handle possible error responses
- Update tests to verify error handling
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Remove groupLabel parameter from getLicenseLoadMetric
- Remove groupLabel parameter from client getLicenseLoadMetric method in interface and implementation
- Update client tests to reflect the parameter removal
- Update license action test to verify no parameter is passed
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* simplify about screen checks
* MM-63728: Use jest.mocked and real version checks in license tests
- Removed isMinimumServerVersion mock, letting tests use real version checking
- Used proper type casting for mock Client
- Added comprehensive version compatibility test cases
- Simplified test setup
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Remove redundant server version test
- Removed redundant test for different server versions
- Existing tests already cover the necessary version compatibility cases
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* MM-63728: Refactor license test to use better mocking pattern
- Refactored the test file to use a better mocking pattern similar to custom_emoji.test.ts
- Simplified mock declarations using jest.mock()
- Added type import for Client for better readability
- Improved type casting for mock objects
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* npm run fix
---------
Co-authored-by: Claude <noreply@anthropic.com>
* experimental github action
* start mtmproxy then kill it
* suspend test for now
* dont need to be in a PR to trigger
* trying again with mitmdump
* where is .mitmproxy folder?
* run with +e
* not sure why exit code 1
* if this is a better path
* let's try killing using trap?
* trying a different path
* maybe using ~ would work?
* looking at output to networksetup command
* minor mistake
* throttling bandwidth
* lets try with sudo
* missing sudo
* using mitmdump
* remove spaces
* tried diff path
* change to the proper file
* upload artifacts
* install cert
* added cert to simulator
* getting simulator UDID
* proper scoped var
* using github outputs
* getenv doesn't have IOS_SIMULATOR_UDID
* using echo command
* maybe forgot to scope outputs
* lets run the command directly
* changed to iPhone 14
* let me see all the devices
* try something new
* rearrange my steps to get cert
* getenv booted
* remove too many outputs
* using mm mobile test server
* tie it all together with detox test
* removed dependency for another job
* put dependency on a job
* simplify process even more
* add github-token on download artifact
* add run-id, hopefully that's what needed to download
* incorrect speed for download
* update to the correct dummynet syntax
* proper mitmdump flow report
* update allow-hosts
* commenting out mitmdump for now
* back to rahim-experiments
* overly commented out
* cacert not --ca-cert
* maybe i allow the wrong host?
* maybe i just forgotr to kill mitmdump after I'm done?
* using pm2
* reinstate jobs. and longer timeout for detox
* need sudo
* recording videos and limiting to 1 test
* just want to run 1 test.
* back to experimenting
* using wget
* test using chrome
* using chrome and add delay
* ok test again with detox
* go back to testing all server_login
* compare booted simulators
* few more experiments
* no \
* using github_outputs
* using fromJSON
* too many $
* can i do this another way?
* two runs to get the it assigned
* try again
* .
* trying to access devices array
* try again
* using jq
* keep it simple
* might not need outputs
* forgot pipe
* will this work?
* will first element of an array works
* see if we got the udid
* did we get it wrong?
* will this work?
* let's assign?
* we have to put into string
* ok 1 more
* will it have quotes?
* echo in an echo
* is this working?
* let's hope this works.
* it's actually using 17.4 iPhone 14 not 17.0
* broke because i add &
* removed failed step
* lowering ping and going back to 10 parallel test
* double-up ONE_SEC to see if tests will pass
* why curl failed after?
* getting more data from failures
* let's get more logs with pm and mitmdump
* more logging and improvement
* silly error!
* problem with throttling, let's figure out where we can improve
* increase timeout for low-bandwidth
* increased delay + run all tests
* lets see if this will be better for throttling
* try set +e to see if it will return failure
* check disk space.
* deleting zip and trash to free up space.
* try to do pfctl twice to see if that would help
* making bandwidth-throttling a composite action
* would 5 seconds make a diff?
* add shell
* throttle bandwidth experiment
* fix quick problem
* 5s sleep, and throttling at the right time
* the throttling was working better earlier.
* add a flush in between
* no exit, see if it works well
* trying continue-on-error
* resetting with continue-on-error vs checking for if steps before worked
* adding flush before throttling to see if it makes a diff
* put it back where we think is the best spot
* change timeout to 60 and some cleanup
* forgot a simple $
* move network throttling again to see if this is better?
* rearranging
* move throttling back to where it used to work well
making bandwidth-throttling action taking inputs
* forgot shell
* inputs not input, and continue-on-error
* getting host from site_1_url
* update the sed script
* move more steps into composite action file
* add shell
* add more shell
* action cleanup
* see if our reset network setting works
* delete unused files
* more clean up
* wrong indentation
* wrong context
* see if not having low bandwidth enabled would cause stuff to break
* will it fail on non-existent step name?
* things are failing after proxy started
* start using low_bandwidth_mode input
* incorrect use of curly bracket
* low_bandwidth_mode vs low_bandwidth
* correcting the use of curly bracket in if check
* low_bandwidth_mode correction
* why would https:// makes a diff?
* just going to start pm2 after stopping
* move things around again
* some more re-arranging
* exit 1
* rearranged too much
* clean up
* start-proxy action
* incorrect variable name
* use test_server_url instead
* reverting back to original
* use pull_request
* using env var prepend
* using existing artifact
* not in ""
* not going to prepend anymore
* incorrectly removed input instead of env
* close to final
* using original e2e-detox-template
* timeout-minutes need to be higher for low_bandwidth.
* using label instead of push to branch
* add check-label
* remove unneeded test
* renamed ci.yml back to original
* different way to remove label
remove experiment files
reinstate ci.yml
* remove experiment file
* see label again
* output labels
* another experiment
* test again
* fix issue when checking for low bandwidth
* revert changes to package.json in detox/
* changed download to upload in the description
* changes based on review
* add github.event.label.name to the group "id" per @mvitale1989 suggestion
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* upgrade detox and e2e dependencies
* update detox in main package.json
* remove inadvertent addition of "react-devtools"
* remove inadvertent addition of "react-devtools"
* feat: add copy to clip board button in about page
* add intl format text
* make suggested changes.
- fix: wrap copyToClipBoard function in useCallBack
- remove annonymous function onPress, provide function pointer
- make code readable in copyToClipBoard function
* formatting
* small fix
* change copy to clipboard position
- created a custom button eith icon and text
- usd button theme color
* button styling
* divider color
* use predefined btn element
* Add e2e test for copy info button
* feat: refactor the styles for thin lines
- fix: change touchable opacity to view
- add margin top to footer text
* change icon size to 15
* remove unnecessary view
* add config to dependency of callback
* suggeste changes on onClick func
* modified en.json file after running i18-extract
* Improve translations
* Address feedback
* Fix non updated default messages
---------
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* Detox/E2E: Scripts to run tests and save report
* Change TM4J to ZEPHYR
* Change AWS to DETOX_AWS
* Removed send report on type release; moved incrementalDuration to getAllTests
* Apply change requests
* Fix import order
* Fixed save_report comments; Fixed IOS checks
* Added TEST_CYCLE_LINK_PREFIX to save_report comments
* Re-order variables