Commit Graph

80 Commits

Author SHA1 Message Date
Alexander Skvortsov
a595665bfb
fix: Assorted Typing Fixes (#3348)
With all the commits below, we resolve all outstanding typing issues in the repo, and CI jobs run green.

* fix: Convert DashboardPage and DashboardWidget to TypeScript

* fix: fix type errors in package manager ext

* fix: Convert Post component to TypeScript

* fix: avatar typings should accept null user

* fix: convert Notification component to TypeScript

* fix: properly use `typeof` in ForumApplication

* feat: make Notification content attr generic

* chore: format Notification component

* fix: Convert DiscussionRenamedNotification to TypeScript

* fix(pusher) move shims to a location where they get applied

* fix(pusher): fix some typing errors

* fix(akismet): fix some typing issues

* chore: update core dist typings

* chore(pusher): format

* fix: anchorScroll should accept string selectors

* fix: more accurately represent ApiQueryParamsPlural

* fix: convert PostStreamState to TypeScript

* chore(core): rebuild typings

* feat: allow extending app.routes

* fix: more flexible typings for highlight.ts

* fix: use primitive `number` type for Discussion typings

* fix: convert DiscussionListItem to TypeScript

* chore: rebuild core typings

* fix: final pusher type fixes

* feat: start tags TypeScript conversion

* fix: require-dev tags in pusher for CI TypeScript purposes.

* chore(core): format

* chore(tags): build dist typings

* feat(pusher): use dist types from tags.

* feat: convert flags to TypeScript

* chore(flags): generate dist typings

* fix(akismet): last type errors

* chore: update .yarn-integrity

* chore: partially run flarum-cli audit infra --fix

The tsconfig changes from that command are ignored, since we don't yet support "replacable sections" that would let us add custom config.

* chore: use type imports

* fix: broader gitattributes

* chore: run flarum-cli audit infra --monorepo --fix

* feat: make `app.data` typings extensible

* chore(core): format

* chore: boost tags TypeScript coverage

* fix(tags): further increase type coverage.
2022-03-23 11:43:14 -04:00
StyleCI Bot
a2eba3e978
Apply fixes from StyleCI
[ci skip] [skip ci]
2022-03-11 23:11:35 +00:00
dependabot[bot]
37a882118a
chore(deps): bump glob-parent from 3.1.0 to 5.1.2 in /extensions/emoji/js (#3345)
* chore(deps): bump glob-parent in /extensions/emoji/js

Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 3.1.0 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v3.1.0...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Apply fixes from StyleCI

[ci skip] [skip ci]

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: StyleCI Bot <bot@styleci.io>
2022-03-11 18:11:20 -05:00
Alexander Skvortsov
693da58c41 chore: set up composer path repos 2022-03-11 18:02:49 -05:00
Alexander Skvortsov
2bf6b12a64 chore: remove centralizable repo config
- Remove .github conf folder from Flarum packages

- Remove styleci config from all packages
2022-03-11 18:01:44 -05:00
Alexander Skvortsov
8c51d788e6 Merge remote-tracking branch 'php_packages_phpstan/REWRITE' 2022-03-11 18:01:07 -05:00
Alexander Skvortsov
9d71ac37ff Fix branch alias 2022-01-03 15:47:44 -05:00
Matthew Kilgore
853926ce0b Pushing latest stuff 2021-12-28 20:45:22 -05:00
Matthew Kilgore
05aa62f70c feat: STUBS! 2021-12-01 17:36:36 -05:00
Matthew Kilgore
c561897f1c Forgot phpunit in the composer file 2021-11-24 23:04:14 -05:00
Matthew Kilgore
ca2ac10c17 Initial extension requirements, will eventually have stubs 2021-11-24 22:58:58 -05:00
Matthew Kilgore
3da450c91a Initial commit 2021-11-24 22:57:30 -05:00
Daniel Klabbers
23dc0d7182 allow empty db password "" again 2021-06-21 09:32:27 +02:00
Daniel Klabbers
8eb5cfd062 fix branch alias 2021-05-25 22:59:06 +02:00
David Wheatley
f2398017a7 Update copyright year 2021-05-15 00:58:25 +01:00
Alexander Skvortsov
ce7484e2c8 Extensions should be considered enabled after boot.
Before boot, we consider them "disabled" so they get migrated.
2021-05-11 19:31:35 -04:00
Alexander Skvortsov
d68d551e16 Ensure that migrations run 2021-05-11 17:15:11 -04:00
Alexander Skvortsov
5febbf8fb1 get/set enabled extensions from test case, not DB 2021-05-11 16:24:27 -04:00
Alexander Skvortsov
bd613ba70c Remove second beginTransaction
The transaction is already started in the proper `BeginTransactionAndSetDatabase` extender.
2021-05-03 01:27:06 -04:00
Alexander Skvortsov
148f810d96 Don't resolve routes early.
In normal Flarum, extensions are only enabled during requests. Here, however, we enable some during boot. This resolves the FilesystemManager early, which resolves the Url Generator early. To fix this, we directly provide a filesystem disk for assets instead of getting it from the filesystem manager.
2021-04-23 18:26:41 -04:00
Alexander Skvortsov
04b04f3635 Ensure app is booted when getting database 2021-04-23 15:20:29 -04:00
Alexander Skvortsov
0569da23e1 Drop all DB tables before installation during setup. (#9)
This ensures a clean state for the extension currently being tested. The alternative requires the user to create and keep track of multiple test databases, or manually delete/re-recreate the database every time they switch between extensions being tested. Now, a simple `composer test:setup` will always reset the test environment to the original state.
2021-04-20 14:47:07 -04:00
Alexander Skvortsov
8fd1cc4f0d TestCase Config method (#13)
Similarly to `settings`, this allows setting/overriding config prior to application boot.
2021-04-14 16:27:59 -04:00
Sami Mazouz
b2ecb8f020 Remove UsesSettingsTrait (#12) 2021-04-13 23:46:04 -04:00
Alexander Skvortsov
76a869a198 Start transactions before the app is fully booted. (#11)
This make a cleaner state more likely, and ensures that settings set via `$this->setting` are cleaned up after the test case runs.
2021-04-12 10:26:05 -04:00
Alexander Skvortsov
675627ac15 Add a few more automated tests 2021-04-11 23:00:36 -04:00
Alexander Skvortsov
f13d45f77b Test against dev version of core
Since we're making changes for the dev version of core, we should test against that too.

For now, this fixes issues with the `extensions` method of `Installation` being undefined.
2021-04-11 22:47:09 -04:00
Alexander Skvortsov
f2101e502e Don't enable extensions during installation (#7) 2021-04-08 18:39:21 -04:00
Alexander Skvortsov
9ed29cd35e Add automated tests for flarum/testing 2021-04-07 22:38:58 +01:00
Alexander Skvortsov
1fbf5fd029 Add setting method to integration TestCase
This allows adding settings before the app is booted. In the past we've used hacky workarounds like manually resetting a binding to override singletons to use custom setting values. It makes sense to support this through `TestCase`.
2021-04-07 15:01:40 -04:00
Clark Winkelmann
3506991d3e Requirement and formatting fixes (#5)
Add ext-json to composer requirements
Update editorconfig to match core
Update phpdoc to not reference missing import
2021-03-21 19:26:25 +01:00
Clark Winkelmann
f410f69b36 Add missing import for ExtensionManager (#6)
Replace bind with singleton, otherwise singleton behavior is lost
2021-03-21 19:25:02 +01:00
Clark Winkelmann
082a600adf Fix variable names (#4)
It's not causing any issue because the correct variable name is always used to set and read the value, and PHP is fine setting new attributes on a class dynamically. It's just the explicit variables declared don't match with those actually used later.
2021-03-20 18:46:03 -04:00
SychO9
c7fdb79ce3 Ignore generated tmp 2021-03-11 13:07:31 -05:00
SychO9
ca8b7424b8 Add required argument 2021-03-11 13:07:31 -05:00
Alexander Skvortsov
ce0e5c99a6 Use mockery 1.4 2021-03-06 18:58:07 -05:00
Alexander Skvortsov
19763f8641 Update PHPUnit to v9 2021-03-06 18:38:34 -05:00
Alexander Skvortsov
dd6897cb6f Update BuildsHttpRequests for new token system 2021-03-06 18:38:12 -05:00
Alexander Skvortsov
e8f3d23ded Configurable Tmp Dir Location (#2) 2021-02-10 08:59:08 -05:00
Alexander Skvortsov
6eafce0660 If current package is an extension, add it to the extension manager (#1)
Core's ExtensionManager only looks for extensions in the vendor directory, which makes sense for a Flarum instance, but is problematic if used in the context of a test suite for an extension. This PR:

- Adds a class extending ExtensionManager to include the current package
- Adds an extender that replaces ExtensionManager with this new class in container bindings

Effectively, this package can now be used to test extensions.
2021-01-24 12:13:27 -05:00
Alexander Skvortsov
167ffced5d Fix vendor path 2021-01-13 16:49:39 -05:00
Alexander Skvortsov
0dba5af52d Move setup script to importable class 2021-01-13 16:22:47 -05:00
Alexander Skvortsov
b392b85f17 Add composer.json 2021-01-13 01:27:27 -05:00
Alexander Skvortsov
ba0fbd71e6 Move test infrastructure to Testing namespace in src directory 2021-01-13 01:27:05 -05:00
Alexander Skvortsov
1afbb07037 Tests: purge settings cache
Some tests need to change settings, but since MemoryCacheSettingsRepository caches settings in-memory, those changes aren't reflected. The new `purgeSettingsCache` removes it from the container, eliminating that cache.

For UserTest, we also need to regenerate the display name driver, since that's set statically on boot, before we'll get a change to clear the settings cache.
2021-01-13 01:21:38 -05:00
Alexander Skvortsov
ab43c31ff5 Add @inheritDoc to all setUp and tearDown methods 2021-01-13 01:21:38 -05:00
Franz Liedke
6ca9191f42 Tests: Always start transaction before seeding 2021-01-13 01:21:38 -05:00
Franz Liedke
663f7a5d32 Tests: Stop using Eloquent models for seeding data 2021-01-13 01:21:38 -05:00
Franz Liedke
b1a18971ca Tests: Rely on admin user, groups, permissions from test setup script 2021-01-13 01:21:38 -05:00
Franz Liedke
31028e0bf9 Run integration tests in a transaction 2021-01-13 01:21:38 -05:00