Use & enforce snake_case naming convention on config.json settings (#8062)

* Document and support the established naming convention for config opts

This change:
* Rename `ConfigOptions` to `IConfigOptions` to match code convention/style, plus move it to a dedicated file
* Update comments and surrounding documentation
* Define every single documented option (from element-web's config.md)
* Enable a linter to enforce the convention
* Invent a translation layer for a different change to use
* No attempt to fix build errors from doing this (at this stage)

* Add demo of lint rule in action

* Fix all obvious instances of SdkConfig case conflicts

* Fix tests to use SdkConfig directly

* Add docs to make unset() calling safer

* Appease the linter

* Update documentation to match snake_case_config

* Fix more instances of square brackets off SdkConfig
This commit is contained in:
Travis Ralston 2022-03-18 10:12:36 -06:00 committed by GitHub
parent 09c57b228e
commit d8a939df5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
56 changed files with 605 additions and 259 deletions

View file

@ -42,9 +42,9 @@ describe('Login', function() {
} as unknown as MatrixClient);
beforeEach(function() {
jest.spyOn(SdkConfig, "get").mockReturnValue({
SdkConfig.put({
brand: "test-brand",
disable_custom_urls: true,
brand: 'test-brand',
});
mockClient.login.mockClear().mockResolvedValue({});
mockClient.loginFlows.mockClear().mockResolvedValue({ flows: [{ type: "m.login.password" }] });
@ -57,6 +57,7 @@ describe('Login', function() {
afterEach(function() {
ReactDOM.unmountComponentAtNode(parentDiv);
parentDiv.remove();
SdkConfig.unset(); // we touch the config, so clean up
});
function render() {
@ -69,9 +70,9 @@ describe('Login', function() {
}
it('should show form with change server link', async () => {
jest.spyOn(SdkConfig, "get").mockReturnValue({
SdkConfig.put({
brand: "test-brand",
disable_custom_urls: false,
brand: 'test',
});
const root = render();