Skip to content

Commit af57075

Browse files
backward compatibility with PlayStore versions and new tests for the new PlayStore version (#166)
* Update playStore.js * backward compatibility with PlayStore versions * new tests for the new PlayStore version
1 parent 5665386 commit af57075

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

packages/react-native-version-check/src/providers/__tests__/playStore.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,25 @@ describe('PlayStoreProvider get version current (since ~Dec, 2018) Play Store',
109109
);
110110
});
111111
});
112+
113+
describe('PlayStoreProvider get version current (since ~May, 2022) Play Store', () => {
114+
it('with format x.x.x', async () => {
115+
mockSuccesfulResponse(
116+
'null,null,[[null,1]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[2],null,[[["0.10.0"]],[[[30,"11"]],[[[16,"4.1"]]]],[["May 31, 2022"]]]'
117+
);
118+
119+
await PlayStoreProvider.getVersion(options).then(r =>
120+
expect(r).toEqual({ version: '0.10.0', storeUrl })
121+
);
122+
});
123+
124+
it('with format xxx', async () => {
125+
mockSuccesfulResponse(
126+
'null,null,[[null,1]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[2],null,[[["234"]],[[[30,"11"]],[[[16,"4.1"]]]],[["May 31, 2022"]]]'
127+
);
128+
129+
await PlayStoreProvider.getVersion(options).then(r =>
130+
expect(r).toEqual({ version: '234', storeUrl })
131+
);
132+
});
133+
});

packages/react-native-version-check/src/providers/playStore.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@ class PlayStoreProvider implements IProvider {
4141
return Promise.resolve({ version: latestVersion, storeUrl });
4242
}
4343

44+
const matchNewLayout = text.match(/\[\[\["([\d.]+?)"\]\]/);
45+
if (matchNewLayout) {
46+
const latestVersion = matchNewLayout[1].trim();
47+
48+
return Promise.resolve({ version: latestVersion, storeUrl });
49+
}
50+
4451
return Promise.reject(error(text));
4552
});
4653
} catch (e) {

0 commit comments

Comments
 (0)