|
16 | 16 | * specific language governing permissions and limitations |
17 | 17 | * under the License. |
18 | 18 | */ |
19 | | -import { getOriginalSeries } from '@superset-ui/chart-controls'; |
| 19 | +import { |
| 20 | + getOriginalSeries, |
| 21 | + getTimeOffset, |
| 22 | + hasTimeOffset, |
| 23 | +} from '@superset-ui/chart-controls'; |
20 | 24 |
|
21 | | -test('returns the series name when time compare is empty', () => { |
| 25 | +test('getOriginalSeries returns the series name when time compare is empty', () => { |
22 | 26 | const seriesName = 'sum'; |
23 | 27 | expect(getOriginalSeries(seriesName, [])).toEqual(seriesName); |
24 | 28 | }); |
25 | 29 |
|
26 | | -test('returns the original series name', () => { |
| 30 | +test('getOriginalSeries returns the original series name with __ pattern', () => { |
27 | 31 | const seriesName = 'sum__1_month_ago'; |
28 | 32 | const timeCompare = ['1_month_ago']; |
29 | 33 | expect(getOriginalSeries(seriesName, timeCompare)).toEqual('sum'); |
30 | 34 | }); |
| 35 | + |
| 36 | +test('getOriginalSeries returns the original series name with <offset>, pattern', () => { |
| 37 | + const seriesName = '1 year ago, groupby_value'; |
| 38 | + const timeCompare = ['1 year ago']; |
| 39 | + expect(getOriginalSeries(seriesName, timeCompare)).toEqual('groupby_value'); |
| 40 | +}); |
| 41 | + |
| 42 | +test('getOriginalSeries returns the original series name with , <offset> pattern', () => { |
| 43 | + const seriesName = 'AVG(price_each), 1 year ago'; |
| 44 | + const timeCompare = ['1 year ago']; |
| 45 | + expect(getOriginalSeries(seriesName, timeCompare)).toEqual('AVG(price_each)'); |
| 46 | +}); |
| 47 | + |
| 48 | +test('getOriginalSeries handles multiple time compares', () => { |
| 49 | + const seriesName = 'count, 1 year ago'; |
| 50 | + const timeCompare = ['1 month ago', '1 year ago']; |
| 51 | + expect(getOriginalSeries(seriesName, timeCompare)).toEqual('count'); |
| 52 | +}); |
| 53 | + |
| 54 | +test('getTimeOffset returns undefined when no time offset pattern matches', () => { |
| 55 | + const series = { name: 'count' }; |
| 56 | + const timeCompare = ['1 year ago']; |
| 57 | + expect(getTimeOffset(series, timeCompare)).toBeUndefined(); |
| 58 | +}); |
| 59 | + |
| 60 | +test('getTimeOffset detects __ pattern', () => { |
| 61 | + const series = { name: 'count__1 year ago' }; |
| 62 | + const timeCompare = ['1 year ago']; |
| 63 | + expect(getTimeOffset(series, timeCompare)).toEqual('1 year ago'); |
| 64 | +}); |
| 65 | + |
| 66 | +test('getTimeOffset detects <offset>, pattern', () => { |
| 67 | + const series = { name: '1 year ago, groupby_value' }; |
| 68 | + const timeCompare = ['1 year ago']; |
| 69 | + expect(getTimeOffset(series, timeCompare)).toEqual('1 year ago'); |
| 70 | +}); |
| 71 | + |
| 72 | +test('getTimeOffset detects , <offset> pattern', () => { |
| 73 | + const series = { name: 'AVG(price_each), 1 year ago' }; |
| 74 | + const timeCompare = ['1 year ago']; |
| 75 | + expect(getTimeOffset(series, timeCompare)).toEqual('1 year ago'); |
| 76 | +}); |
| 77 | + |
| 78 | +test('hasTimeOffset returns false for original series', () => { |
| 79 | + const series = { name: 'count' }; |
| 80 | + const timeCompare = ['1 year ago']; |
| 81 | + expect(hasTimeOffset(series, timeCompare)).toBe(false); |
| 82 | +}); |
| 83 | + |
| 84 | +test('hasTimeOffset returns true for derived series with , <offset> pattern', () => { |
| 85 | + const series = { name: 'AVG(price_each), 1 year ago' }; |
| 86 | + const timeCompare = ['1 year ago']; |
| 87 | + expect(hasTimeOffset(series, timeCompare)).toBe(true); |
| 88 | +}); |
| 89 | + |
| 90 | +test('hasTimeOffset returns false when series name is not a string', () => { |
| 91 | + const series = { name: 123 }; |
| 92 | + const timeCompare = ['1 year ago']; |
| 93 | + expect(hasTimeOffset(series, timeCompare)).toBe(false); |
| 94 | +}); |
0 commit comments