Skip to content

Commit 63113a6

Browse files
authored
MCLOUD-5620: Increase coverage for patches (#33)
1 parent c876990 commit 63113a6

File tree

9 files changed

+156
-43
lines changed

9 files changed

+156
-43
lines changed

.travis.yml

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,6 @@ services:
1111
- docker
1212

1313
language: php
14-
php:
15-
- '7.1'
16-
- '7.2'
17-
- '7.3'
18-
19-
env:
20-
- TEST_SUITE=functional
2114

2215
stages:
2316
- static-unit
@@ -42,11 +35,36 @@ jobs:
4235
php: '7.3'
4336
env:
4437
- TEST_SUITE=static-unit
38+
- stage: test
39+
php: '7.1'
40+
env:
41+
- TEST_SUITE=functional-ee
42+
- php: '7.2'
43+
env:
44+
- TEST_SUITE=functional-ee
45+
- php: '7.3'
46+
env:
47+
- TEST_SUITE=functional-ee
48+
- php: '7.1'
49+
env:
50+
- TEST_SUITE=functional-ce
51+
- php: '7.2'
52+
env:
53+
- TEST_SUITE=functional-ce
54+
- php: '7.3'
55+
env:
56+
- TEST_SUITE=functional-ce
4557

4658
install:
59+
- composer config http-basic.repo.magento.com ${REPO_USERNAME_CE} ${REPO_PASSWORD_CE}
4760
- composer config github-oauth.github.com ${GITHUB_TOKEN}
4861
- if [ -n "${MCD_VERSION}" ] && [ $TRAVIS_PHP_VERSION != "7.0" ]; then composer config repositories.mcd git [email protected]:magento/magento-cloud-docker.git && composer require "magento/magento-cloud-docker:${MCD_VERSION}" --no-update; fi;
4962
- composer update -n --no-suggest
5063

64+
before_script:
65+
- sudo sysctl -w vm.max_map_count=262144
66+
- if [ $TEST_SUITE == "functional-ce" ]; then cp codeception.dist.yml codeception.yml && sed -i "s/REPO_USERNAME/REPO_USERNAME_CE/" codeception.yml && sed -i "s/REPO_PASSWORD/REPO_PASSWORD_CE/" codeception.yml; fi;
67+
5168
script:
52-
- if [ $TRAVIS_SECURE_ENV_VARS == "true" ] && [ $TEST_SUITE == "functional" ]; then ./tests/travis/functional.sh; fi;
69+
- if [ $TRAVIS_SECURE_ENV_VARS == "true" ] && [ $TEST_SUITE == "functional-ee" ]; then ./tests/travis/functional-ee.sh; fi;
70+
- if [ $TEST_SUITE == "functional-ce" ]; then ./tests/travis/functional-ce.sh; fi;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\CloudPatches\Test\Functional\Acceptance;
9+
10+
/**
11+
* @group php71ce
12+
*/
13+
class Acceptance71CeCest extends Acceptance71Cest
14+
{
15+
/**
16+
* @var string
17+
*/
18+
protected $edition = 'CE';
19+
}

src/Test/Functional/Acceptance/Acceptance71Cest.php

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,21 @@ class Acceptance71Cest extends AcceptanceCest
1818
protected function patchesDataProvider(): array
1919
{
2020
return [
21-
['magentoVersion' => '2.1.16'],
22-
['magentoVersion' => '2.1.18'],
23-
['magentoVersion' => '2.2.0'],
24-
['magentoVersion' => '2.2.11'],
21+
['templateVersion' => '2.1.16'],
22+
['templateVersion' => '2.1.17'],
23+
['templateVersion' => '2.1.18'],
24+
['templateVersion' => '2.2.0'],
25+
['templateVersion' => '2.2.1'],
26+
['templateVersion' => '2.2.2'],
27+
['templateVersion' => '2.2.3'],
28+
['templateVersion' => '2.2.4'],
29+
['templateVersion' => '2.2.5'],
30+
['templateVersion' => '2.2.6'],
31+
['templateVersion' => '2.2.7'],
32+
['templateVersion' => '2.2.8'],
33+
['templateVersion' => '2.2.9'],
34+
['templateVersion' => '2.2.10'],
35+
['templateVersion' => '2.2.11'],
2536
];
2637
}
2738
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\CloudPatches\Test\Functional\Acceptance;
9+
10+
/**
11+
* @group php72ce
12+
*/
13+
class Acceptance72CeCest extends Acceptance72Cest
14+
{
15+
/**
16+
* @var string
17+
*/
18+
protected $edition = 'CE';
19+
}

src/Test/Functional/Acceptance/Acceptance72Cest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ class Acceptance72Cest extends AcceptanceCest
1818
protected function patchesDataProvider(): array
1919
{
2020
return [
21-
['magentoVersion' => '2.3.0'],
22-
['magentoVersion' => '2.3.2'],
21+
['templateVersion' => '2.3.0'],
22+
['templateVersion' => '2.3.1'],
23+
['templateVersion' => '2.3.2'],
2324
];
2425
}
2526
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\CloudPatches\Test\Functional\Acceptance;
9+
10+
/**
11+
* @group php73ce
12+
*/
13+
class AcceptanceCeCest extends AcceptanceCest
14+
{
15+
/**
16+
* @var string
17+
*/
18+
protected $edition = 'CE';
19+
}

src/Test/Functional/Acceptance/AcceptanceCest.php

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@
1212
*/
1313
class AcceptanceCest
1414
{
15+
/**
16+
* @var string
17+
*/
18+
protected $edition = 'EE';
19+
1520
/**
1621
* @param \CliTester $I
1722
*/
@@ -22,11 +27,11 @@ public function _before(\CliTester $I): void
2227

2328
/**
2429
* @param \CliTester $I
25-
* @param string $magentoVersion
30+
* @param string $templateVersion
2631
*/
27-
protected function prepareTemplate(\CliTester $I, string $magentoVersion): void
32+
protected function prepareTemplate(\CliTester $I, string $templateVersion): void
2833
{
29-
$I->cloneTemplateToWorkDir($magentoVersion);
34+
$I->cloneTemplateToWorkDir($templateVersion);
3035
$I->createAuthJson();
3136
$I->createArtifactsDir();
3237
$I->createArtifactCurrentTestedCode('patches', '1.0.99');
@@ -37,9 +42,28 @@ protected function prepareTemplate(\CliTester $I, string $magentoVersion): void
3742
'magento/magento-cloud-docker',
3843
$I->getDependencyVersion('magento/magento-cloud-docker')
3944
);
45+
46+
if ($this->edition === 'CE') {
47+
$version = $this->getVersionRangeForMagento($I);
48+
$I->removeDependencyFromComposer('magento/magento-cloud-metapackage');
49+
$I->addDependencyToComposer('magento/ece-tools', '^2002.1.0');
50+
$I->addDependencyToComposer('magento/product-community-edition', $version);
51+
}
52+
4053
$I->composerUpdate();
4154
}
4255

56+
/**
57+
* @param \CliTester $I
58+
* @return string
59+
*/
60+
protected function getVersionRangeForMagento(\CliTester $I): string
61+
{
62+
$composer = json_decode(file_get_contents($I->getWorkDirPath() . '/composer.json'), true);
63+
64+
return $composer['require']['magento/magento-cloud-metapackage'] ?? '';
65+
}
66+
4367
/**
4468
* @param \CliTester $I
4569
* @param \Codeception\Example $data
@@ -48,43 +72,26 @@ protected function prepareTemplate(\CliTester $I, string $magentoVersion): void
4872
*/
4973
public function testPatches(\CliTester $I, \Codeception\Example $data): void
5074
{
51-
$this->prepareTemplate($I, $data['magentoVersion']);
52-
$this->removeESIfExists($I);
53-
$I->runEceDockerCommand('build:compose --mode=production');
54-
$I->runDockerComposeCommand('run build cloud-build');
55-
$I->startEnvironment();
56-
$I->runDockerComposeCommand('run deploy cloud-deploy');
57-
$I->runDockerComposeCommand('run deploy cloud-post-deploy');
75+
$this->prepareTemplate($I, $data['templateVersion']);
76+
$I->assertTrue($I->runEceDockerCommand('build:compose --mode=production'));
77+
$I->assertTrue($I->runDockerComposeCommand('run build cloud-build'));
78+
$I->assertTrue($I->startEnvironment());
79+
$I->assertTrue($I->runDockerComposeCommand('run deploy cloud-deploy'));
80+
$I->assertTrue($I->runDockerComposeCommand('run deploy cloud-post-deploy'));
5881
$I->amOnPage('/');
5982
$I->see('Home page');
6083
$I->see('CMS homepage content goes here.');
6184
}
6285

63-
/**
64-
* @param \CliTester $I
65-
*/
66-
protected function removeESIfExists(\CliTester $I): void
67-
{
68-
$services = $I->readServicesYaml();
69-
70-
if (isset($services['elasticsearch'])) {
71-
unset($services['elasticsearch']);
72-
$I->writeServicesYaml($services);
73-
74-
$app = $I->readAppMagentoYaml();
75-
unset($app['relationships']['elasticsearch']);
76-
$I->writeAppMagentoYaml($app);
77-
}
78-
}
79-
8086
/**
8187
* @return array
8288
*/
8389
protected function patchesDataProvider(): array
8490
{
8591
return [
86-
['magentoVersion' => '2.3.3'],
87-
['magentoVersion' => 'master'],
92+
['templateVersion' => '2.3.3'],
93+
['templateVersion' => '2.3.4'],
94+
['templateVersion' => 'master'],
8895
];
8996
}
9097

tests/travis/functional-ce.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
3+
# Copyright © Magento, Inc. All rights reserved.
4+
# See COPYING.txt for license details.
5+
6+
set -e
7+
trap '>&2 echo Error: Command \`$BASH_COMMAND\` on line $LINENO failed with exit code $?' ERR
8+
9+
case $TRAVIS_PHP_VERSION in
10+
7.1)
11+
./vendor/bin/codecept run -g php71ce --steps
12+
;;
13+
7.2)
14+
./vendor/bin/codecept run -g php72ce --steps
15+
;;
16+
7.3)
17+
./vendor/bin/codecept run -g php73ce --steps
18+
;;
19+
esac
File renamed without changes.

0 commit comments

Comments
 (0)