Add double publishing support to set-rn-version (#40784)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40784 ## Changelog [Internal] Add double publishing support to set-rn-version Reviewed By: cortinico Differential Revision: D49955312 fbshipit-source-id: b154fe0c4cc53dbe3cc6319bbf43663307816ee4
This commit is contained in:
Родитель
657aea0946
Коммит
2d067568d7
|
@ -134,4 +134,68 @@ describe('set-rn-version', () => {
|
|||
'react-native': version,
|
||||
});
|
||||
});
|
||||
|
||||
it('should set prealpha version', () => {
|
||||
catMock.mockImplementation(path => {
|
||||
if (path === 'packages/react-native/package.json') {
|
||||
return '{"name": "myPackage", "version": 2, "dependencies": {"@react-native/package-a": "prealpha", "@react-native/package-b": "^0.73.0"}}';
|
||||
} else if (
|
||||
path === 'scripts/versiontemplates/ReactNativeVersion.java.template' ||
|
||||
path === 'scripts/versiontemplates/RCTVersion.m.template' ||
|
||||
path === 'scripts/versiontemplates/ReactNativeVersion.h.template' ||
|
||||
path === 'scripts/versiontemplates/ReactNativeVersion.js.template'
|
||||
) {
|
||||
return '{major: ${major}, minor: ${minor}, patch: ${patch}, prerelease: ${prerelease}}';
|
||||
} else {
|
||||
throw new Error(`Invalid path passed for package dir. Path: ${path}`);
|
||||
}
|
||||
});
|
||||
|
||||
sedMock.mockReturnValueOnce({code: 0});
|
||||
|
||||
const version = '0.0.0-prealpha-2023100415';
|
||||
const nightlyVersions = {
|
||||
'@react-native/package-a': version,
|
||||
};
|
||||
setReactNativeVersion(version, nightlyVersions, 'prealpha');
|
||||
|
||||
expect(sedMock).toHaveBeenCalledWith(
|
||||
'-i',
|
||||
/^VERSION_NAME=.*/,
|
||||
`VERSION_NAME=${version}`,
|
||||
'packages/react-native/ReactAndroid/gradle.properties',
|
||||
);
|
||||
expect(writeFileSyncMock.mock.calls.length).toBe(5);
|
||||
expect(writeFileSyncMock.mock.calls[0][0]).toBe(
|
||||
'packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java',
|
||||
);
|
||||
expect(writeFileSyncMock.mock.calls[0][1]).toBe(
|
||||
'{major: 0, minor: 0, patch: 0, prerelease: "prealpha-2023100415"}',
|
||||
);
|
||||
expect(writeFileSyncMock.mock.calls[1][0]).toBe(
|
||||
'packages/react-native/React/Base/RCTVersion.m',
|
||||
);
|
||||
expect(writeFileSyncMock.mock.calls[2][0]).toBe(
|
||||
'packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h',
|
||||
);
|
||||
expect(writeFileSyncMock.mock.calls[3][0]).toBe(
|
||||
'packages/react-native/Libraries/Core/ReactNativeVersion.js',
|
||||
);
|
||||
expect(writeFileSyncMock.mock.calls[4][0]).toBe(
|
||||
'packages/react-native/package.json',
|
||||
);
|
||||
expect(writeFileSyncMock.mock.calls[4][1]).toBe(`{
|
||||
"name": "myPackage",
|
||||
"version": "${version}",
|
||||
"dependencies": {
|
||||
"@react-native/package-a": "0.0.0-prealpha-2023100415",
|
||||
"@react-native/package-b": "^0.73.0"
|
||||
}
|
||||
}`);
|
||||
|
||||
expect(updateTemplatePackageMock).toHaveBeenCalledWith({
|
||||
'@react-native/package-a': '0.0.0-prealpha-2023100415',
|
||||
'react-native': version,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -46,7 +46,7 @@ if (require.main === module) {
|
|||
.option('b', {
|
||||
alias: 'build-type',
|
||||
type: 'string',
|
||||
choices: ['dry-run', 'nightly', 'release'],
|
||||
choices: ['dry-run', 'nightly', 'release', 'prealpha'],
|
||||
required: true,
|
||||
}).argv;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче