expect(pipe).toBeTruthy();
});
- it('transforms with correct version format', () => {
+ it('recognizes a stable release', () => {
+ const value =
+ 'ceph version 13.2.1 \
+ (5533ecdc0fda920179d7ad84e0aa65a127b20d77) mimic (stable)';
+ expect(pipe.transform(value)).toBe('mimic');
+ });
+
+ it('recognizes a development release as the master branch', () => {
const value =
'ceph version 13.1.0-534-g23d3751b89 \
(23d3751b897b31d2bda57aeaf01acb5ff3c4a9cd) nautilus (dev)';
- expect(pipe.transform(value)).toBe('nautilus');
+ expect(pipe.transform(value)).toBe('master');
});
it('transforms with wrong version format', () => {
transform(value: any, args?: any): any {
// Expect "ceph version 13.1.0-419-g251e2515b5
// (251e2515b563856349498c6caf34e7a282f62937) nautilus (dev)"
- const result = /ceph version\s+[^ ]+\s+\(.+\)\s+(.+)\s+/.exec(value);
+ const result = /ceph version\s+[^ ]+\s+\(.+\)\s+(.+)\s+\((.+)\)/.exec(value);
if (result) {
- // Return the "nautilus" part
- return result[1];
+ if (result[2] === 'dev') {
+ // Assume this is actually master
+ return 'master';
+ } else {
+ // Return the "nautilus" part
+ return result[1];
+ }
} else {
// Unexpected format, pass it through
return value;