makeDummyExtensionCompatibleWith("flarum/dummy-compatible-extension", "^1.0.0"); $this->setComposerConfig([ 'require' => [ // The only reason we don't set this to `^1.0.0` and let it update to latest minor, // is because migrations that run DDL queries might be introduced in future versions, // therefore breaking the test transaction. 'flarum/core' => '>=1.0.0 <= 1.1.0', // We leave tags fixed to a version, // the update handler must be able to set it to `*`. 'flarum/tags' => '1.0.3', 'flarum/lang-english' => '*', 'flarum/dummy-compatible-extension' => '^1.0.0' ] ]); $response = $this->send( $this->request('POST', '/api/package-manager/minor-update', [ 'authenticatedAs' => 1, ]) ); $this->assertEquals(200, $response->getStatusCode()); $this->assertPackageVersion('flarum/tags', '*'); $this->assertPackageVersion('flarum/dummy-compatible-extension', '*'); } /** * @test */ public function can_update_with_latest_ext_incompatible_with_latest_core() { $this->makeDummyExtensionCompatibleWith("flarum/dummy-extension", "1.0.0"); $this->setComposerConfig([ 'require' => [ 'flarum/core' => '>=1.0.0 <=1.1.0', 'flarum/tags' => '1.0.3', 'flarum/lang-english' => '*', 'flarum/dummy-extension' => '^1.0.0' ] ]); $this->send( $this->request('POST', '/api/package-manager/check-for-updates', [ 'authenticatedAs' => 1, ]) ); $this->forgetComposerApp(); $response = $this->send( $this->request('POST', '/api/package-manager/minor-update', [ 'authenticatedAs' => 1, ]) ); /** @var LastUpdateRun $lastUpdateRun */ $lastUpdateRun = $this->app()->getContainer()->make(LastUpdateRun::class); $this->assertEquals(200, $response->getStatusCode()); $this->assertPackageVersion("flarum/tags", "*"); $this->assertPackageVersion("flarum/dummy-extension", "*"); $this->assertEquals([ 'flarum/core', 'flarum/lang-english', 'flarum/tags' ], $lastUpdateRun->for(FlarumUpdated::MINOR)->get()['limitedPackages']); } }